@datarailsshared/datarailsshared 1.6.308 → 1.6.312
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/datarailsshared-datarailsshared-1.6.312.tgz +0 -0
- package/esm2022/lib/dr-chip/dr-chip.component.mjs +26 -10
- package/esm2022/lib/dr-file-upload/directives/drag-drop.directive.mjs +63 -0
- package/esm2022/lib/dr-file-upload/dr-file-upload-item/dr-file-upload-item.component.mjs +168 -0
- package/esm2022/lib/dr-file-upload/dr-file-upload.component.mjs +512 -0
- package/esm2022/lib/dr-file-upload/index.mjs +6 -0
- package/esm2022/lib/dr-file-upload/models/file-upload.models.mjs +2 -0
- package/esm2022/lib/dr-file-upload/services/file-upload-validation.service.mjs +76 -0
- package/esm2022/lib/dr-file-upload/templates/dr-file-upload-image-template/dr-file-upload-image-template.component.mjs +135 -0
- package/esm2022/lib/dr-progress-bar/dr-progress-bar.component.mjs +39 -8
- package/esm2022/lib/dr-system-message/dr-system-message.component.mjs +23 -21
- package/esm2022/local-api.mjs +2 -1
- package/fesm2022/datarailsshared-datarailsshared.mjs +1255 -276
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-chip/dr-chip.component.d.ts +8 -5
- package/lib/dr-file-upload/directives/drag-drop.directive.d.ts +12 -0
- package/lib/dr-file-upload/dr-file-upload-item/dr-file-upload-item.component.d.ts +18 -0
- package/lib/dr-file-upload/dr-file-upload.component.d.ts +66 -0
- package/lib/dr-file-upload/index.d.ts +5 -0
- package/lib/dr-file-upload/models/file-upload.models.d.ts +13 -0
- package/lib/dr-file-upload/services/file-upload-validation.service.d.ts +16 -0
- package/lib/dr-file-upload/templates/dr-file-upload-image-template/dr-file-upload-image-template.component.d.ts +22 -0
- package/lib/dr-progress-bar/dr-progress-bar.component.d.ts +13 -4
- package/lib/dr-system-message/dr-system-message.component.d.ts +9 -4
- package/local-api.d.ts +2 -1
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.308.tgz +0 -0
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
@@ -13,26 +13,37 @@ function DrChipComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
13
13
|
i0.ɵɵprojection(1);
|
|
14
14
|
i0.ɵɵelementContainerEnd();
|
|
15
15
|
} }
|
|
16
|
-
function
|
|
16
|
+
function DrChipComponent_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
17
17
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
18
|
-
i0.ɵɵelementStart(0, "
|
|
19
|
-
i0.ɵɵlistener("click", function
|
|
18
|
+
i0.ɵɵelementStart(0, "button", 5);
|
|
19
|
+
i0.ɵɵlistener("click", function DrChipComponent_button_4_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onRemove($event)); });
|
|
20
|
+
i0.ɵɵelement(1, "i", 6);
|
|
20
21
|
i0.ɵɵelementEnd();
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
24
|
+
i0.ɵɵattribute("aria-label", ctx_r2.removeAriaLabel);
|
|
21
25
|
} }
|
|
22
26
|
const _c0 = ["*"];
|
|
23
27
|
export class DrChipComponent {
|
|
24
28
|
constructor() {
|
|
29
|
+
this.removeAriaLabel = 'Remove';
|
|
25
30
|
this.remove = new EventEmitter();
|
|
26
31
|
}
|
|
32
|
+
onRemove(event) {
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
this.remove.emit();
|
|
35
|
+
}
|
|
27
36
|
/** @nocollapse */ static { this.ɵfac = function DrChipComponent_Factory(t) { return new (t || DrChipComponent)(); }; }
|
|
28
|
-
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrChipComponent, selectors: [["dr-chip"]],
|
|
37
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrChipComponent, selectors: [["dr-chip"]], hostVars: 1, hostBindings: function DrChipComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
38
|
+
i0.ɵɵattribute("aria-label", ctx.label);
|
|
39
|
+
} }, inputs: { label: "label", icon: "icon", removable: ["removable", "removable", booleanAttribute], removeAriaLabel: "removeAriaLabel" }, outputs: { remove: "remove" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 5, vars: 4, consts: [["class", "chip__icon", "aria-hidden", "true", 3, "class", 4, "ngIf"], [1, "chip__label"], [4, "ngIf"], ["type", "button", "class", "chip__remove", 3, "click", 4, "ngIf"], ["aria-hidden", "true", 1, "chip__icon"], ["type", "button", 1, "chip__remove", 3, "click"], ["aria-hidden", "true", 1, "dr-icon-exit"]], template: function DrChipComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
40
|
i0.ɵɵprojectionDef();
|
|
30
41
|
i0.ɵɵtemplate(0, DrChipComponent_i_0_Template, 1, 2, "i", 0);
|
|
31
|
-
i0.ɵɵelementStart(1, "
|
|
42
|
+
i0.ɵɵelementStart(1, "span", 1);
|
|
32
43
|
i0.ɵɵtemplate(2, DrChipComponent_ng_container_2_Template, 2, 0, "ng-container", 2);
|
|
33
44
|
i0.ɵɵtext(3);
|
|
34
45
|
i0.ɵɵelementEnd();
|
|
35
|
-
i0.ɵɵtemplate(4,
|
|
46
|
+
i0.ɵɵtemplate(4, DrChipComponent_button_4_Template, 2, 1, "button", 3);
|
|
36
47
|
} if (rf & 2) {
|
|
37
48
|
i0.ɵɵproperty("ngIf", ctx.icon);
|
|
38
49
|
i0.ɵɵadvance(2);
|
|
@@ -41,18 +52,23 @@ export class DrChipComponent {
|
|
|
41
52
|
i0.ɵɵtextInterpolate1(" ", ctx.label, "\n");
|
|
42
53
|
i0.ɵɵadvance(1);
|
|
43
54
|
i0.ɵɵproperty("ngIf", ctx.removable);
|
|
44
|
-
} }, dependencies: [CommonModule, i1.NgIf], styles: ["[_nghost-%COMP%]{display:inline-flex;align-items:center;height:24px;border-radius:12px;padding:0 4px;background-color:#f0f1f4}[_nghost-%COMP%] .chip__icon[_ngcontent-%COMP%]{margin-left:4px;font-size:20px;color:#6d6e6f}[_nghost-%COMP%] .chip__label[_ngcontent-%COMP%]{margin:0 4px;flex-grow:1;color:#333;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;line-height:16px;font-weight:400}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]{border-radius:50%;color:#6d6e6f;font-size:20px;cursor:pointer;flex-shrink:0}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]:hover{background-color:#f5f5f5;color:#333}"], changeDetection: 0 }); }
|
|
55
|
+
} }, dependencies: [CommonModule, i1.NgIf], styles: ["[_nghost-%COMP%]{display:inline-flex;align-items:center;height:24px;border-radius:12px;padding:0 4px;background-color:#f0f1f4}[_nghost-%COMP%] .chip__icon[_ngcontent-%COMP%]{margin-left:4px;font-size:20px;color:#6d6e6f}[_nghost-%COMP%] .chip__label[_ngcontent-%COMP%]{margin:0 4px;flex-grow:1;color:#333;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;line-height:16px;font-weight:400}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:transparent;color:#6d6e6f;font-size:20px;cursor:pointer;flex-shrink:0}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]:hover{background-color:#f5f5f5;color:#333}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]:focus{outline:2px solid #4646ce;outline-offset:1px}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]:focus:not(:focus-visible){outline:none}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%]:focus-visible{outline:2px solid #4646ce;outline-offset:1px}[_nghost-%COMP%] .chip__remove[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:20px}"], changeDetection: 0 }); }
|
|
45
56
|
}
|
|
46
57
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChipComponent, [{
|
|
47
58
|
type: Component,
|
|
48
|
-
args: [{ selector: 'dr-chip', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule],
|
|
59
|
+
args: [{ selector: 'dr-chip', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], host: {
|
|
60
|
+
'[attr.aria-label]': 'label',
|
|
61
|
+
}, template: "<i *ngIf=\"icon\" [class]=\"icon\" class=\"chip__icon\" aria-hidden=\"true\"></i>\n\n<span class=\"chip__label\">\n <ng-container *ngIf=\"!label\">\n <ng-content></ng-content>\n </ng-container>\n {{ label }}\n</span>\n\n<button\n *ngIf=\"removable\"\n type=\"button\"\n class=\"chip__remove\"\n [attr.aria-label]=\"removeAriaLabel\"\n (click)=\"onRemove($event)\">\n <i class=\"dr-icon-exit\" aria-hidden=\"true\"></i>\n</button>\n", styles: [":host{display:inline-flex;align-items:center;height:24px;border-radius:12px;padding:0 4px;background-color:#f0f1f4}:host .chip__icon{margin-left:4px;font-size:20px;color:#6d6e6f}:host .chip__label{margin:0 4px;flex-grow:1;color:#333;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;line-height:16px;font-weight:400}:host .chip__remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:transparent;color:#6d6e6f;font-size:20px;cursor:pointer;flex-shrink:0}:host .chip__remove:hover{background-color:#f5f5f5;color:#333}:host .chip__remove:focus{outline:2px solid #4646ce;outline-offset:1px}:host .chip__remove:focus:not(:focus-visible){outline:none}:host .chip__remove:focus-visible{outline:2px solid #4646ce;outline-offset:1px}:host .chip__remove i{font-size:20px}\n"] }]
|
|
49
62
|
}], null, { label: [{
|
|
50
63
|
type: Input
|
|
51
64
|
}], icon: [{
|
|
52
65
|
type: Input
|
|
53
66
|
}], removable: [{
|
|
67
|
+
type: Input,
|
|
68
|
+
args: [{ transform: booleanAttribute }]
|
|
69
|
+
}], removeAriaLabel: [{
|
|
54
70
|
type: Input
|
|
55
71
|
}], remove: [{
|
|
56
72
|
type: Output
|
|
57
73
|
}] }); })();
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGlwL2RyLWNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hpcC9kci1jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0lDRC9DLHVCQUF5RTs7O0lBQXpELDBCQUFjOzs7SUFHMUIsNkJBQTZCO0lBQ3pCLGtCQUF5QjtJQUM3QiwwQkFBZTs7OztJQUluQixpQ0FLK0I7SUFBM0IscUtBQVMsZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBQzFCLHVCQUErQztJQUNuRCxpQkFBUzs7O0lBSEwsb0RBQW1DOzs7QURDdkMsTUFBTSxPQUFPLGVBQWU7SUFYNUI7UUFzQkksb0JBQWUsR0FBVyxRQUFRLENBQUM7UUFFMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FNOUM7SUFKRyxRQUFRLENBQUMsS0FBWTtRQUNqQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO21HQWxCUSxlQUFlO21HQUFmLGVBQWU7OzJGQU9KLGdCQUFnQjs7WUNyQnhDLDREQUF5RTtZQUV6RSwrQkFBMEI7WUFDdEIsa0ZBRWU7WUFDZixZQUNKO1lBQUEsaUJBQU87WUFFUCxzRUFPUzs7WUFoQkwsK0JBQVU7WUFHSyxlQUFZO1lBQVosaUNBQVk7WUFHM0IsZUFDSjtZQURJLDJDQUNKO1lBR0ssZUFBZTtZQUFmLG9DQUFlOzRCREROLFlBQVk7O3VGQUtiLGVBQWU7Y0FYM0IsU0FBUzsyQkFDSSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFFBQ2pCO29CQUNGLG1CQUFtQixFQUFFLE9BQU87aUJBQy9CO2dCQUlELEtBQUs7a0JBREosS0FBSztZQUlOLElBQUk7a0JBREgsS0FBSztZQUlOLFNBQVM7a0JBRFIsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUl0QyxlQUFlO2tCQURkLEtBQUs7WUFHRyxNQUFNO2tCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWNoaXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWNoaXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2xhYmVsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBEckNoaXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGljb24/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICByZW1vdmFibGU/OiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICByZW1vdmVBcmlhTGFiZWw6IHN0cmluZyA9ICdSZW1vdmUnO1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIG9uUmVtb3ZlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5yZW1vdmUuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxpICpuZ0lmPVwiaWNvblwiIFtjbGFzc109XCJpY29uXCIgY2xhc3M9XCJjaGlwX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXG48c3BhbiBjbGFzcz1cImNoaXBfX2xhYmVsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYWJlbFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAge3sgbGFiZWwgfX1cbjwvc3Bhbj5cblxuPGJ1dHRvblxuICAgICpuZ0lmPVwicmVtb3ZhYmxlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImNoaXBfX3JlbW92ZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZW1vdmVBcmlhTGFiZWxcIlxuICAgIChjbGljayk9XCJvblJlbW92ZSgkZXZlbnQpXCI+XG4gICAgPGkgY2xhc3M9XCJkci1pY29uLWV4aXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DrDragDropDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.fileDrop = new EventEmitter();
|
|
6
|
+
this.dragStateChange = new EventEmitter();
|
|
7
|
+
this.isDragover = false;
|
|
8
|
+
}
|
|
9
|
+
onDragOver(event) {
|
|
10
|
+
event.preventDefault();
|
|
11
|
+
event.stopPropagation();
|
|
12
|
+
if (!this.isDragover) {
|
|
13
|
+
this.isDragover = true;
|
|
14
|
+
this.dragStateChange.emit(true);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
onDragLeave(event) {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
event.stopPropagation();
|
|
20
|
+
this.isDragover = false;
|
|
21
|
+
this.dragStateChange.emit(false);
|
|
22
|
+
}
|
|
23
|
+
onDrop(event) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
event.stopPropagation();
|
|
26
|
+
this.isDragover = false;
|
|
27
|
+
this.dragStateChange.emit(false);
|
|
28
|
+
const files = event.dataTransfer?.files;
|
|
29
|
+
if (files && files.length > 0) {
|
|
30
|
+
this.fileDrop.emit(files);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** @nocollapse */ static { this.ɵfac = function DrDragDropDirective_Factory(t) { return new (t || DrDragDropDirective)(); }; }
|
|
34
|
+
/** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DrDragDropDirective, selectors: [["", "drDragDrop", ""]], hostVars: 2, hostBindings: function DrDragDropDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵlistener("dragover", function DrDragDropDirective_dragover_HostBindingHandler($event) { return ctx.onDragOver($event); })("dragleave", function DrDragDropDirective_dragleave_HostBindingHandler($event) { return ctx.onDragLeave($event); })("drop", function DrDragDropDirective_drop_HostBindingHandler($event) { return ctx.onDrop($event); });
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
i0.ɵɵclassProp("dr-file-upload--dragover", ctx.isDragover);
|
|
38
|
+
} }, outputs: { fileDrop: "fileDrop", dragStateChange: "dragStateChange" }, standalone: true }); }
|
|
39
|
+
}
|
|
40
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDragDropDirective, [{
|
|
41
|
+
type: Directive,
|
|
42
|
+
args: [{
|
|
43
|
+
selector: '[drDragDrop]',
|
|
44
|
+
standalone: true,
|
|
45
|
+
}]
|
|
46
|
+
}], null, { fileDrop: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}], dragStateChange: [{
|
|
49
|
+
type: Output
|
|
50
|
+
}], isDragover: [{
|
|
51
|
+
type: HostBinding,
|
|
52
|
+
args: ['class.dr-file-upload--dragover']
|
|
53
|
+
}], onDragOver: [{
|
|
54
|
+
type: HostListener,
|
|
55
|
+
args: ['dragover', ['$event']]
|
|
56
|
+
}], onDragLeave: [{
|
|
57
|
+
type: HostListener,
|
|
58
|
+
args: ['dragleave', ['$event']]
|
|
59
|
+
}], onDrop: [{
|
|
60
|
+
type: HostListener,
|
|
61
|
+
args: ['drop', ['$event']]
|
|
62
|
+
}] }); })();
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWZpbGUtdXBsb2FkL2RpcmVjdGl2ZXMvZHJhZy1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0YsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQU1hLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUd2RCxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBZ0N0QjtJQTdCRyxVQUFVLENBQUMsS0FBZ0I7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFHRCxXQUFXLENBQUMsS0FBZ0I7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBR0QsTUFBTSxDQUFDLEtBQWdCO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7UUFDeEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO3VHQXRDUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjtnSEFBbkIsc0JBQWtCLDZGQUFsQix1QkFBbUIsbUZBQW5CLGtCQUFjOzs7Ozt1RkFBZCxtQkFBbUI7Y0FKL0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixVQUFVLEVBQUUsSUFBSTthQUNuQjtnQkFHWSxRQUFRO2tCQURoQixNQUFNO1lBR0UsZUFBZTtrQkFEdkIsTUFBTTtZQUlQLFVBQVU7a0JBRFQsV0FBVzttQkFBQyxnQ0FBZ0M7WUFJN0MsVUFBVTtrQkFEVCxZQUFZO21CQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQVdwQyxXQUFXO2tCQURWLFlBQVk7bUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBU3JDLE1BQU07a0JBREwsWUFBWTttQkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RyRHJhZ0Ryb3BdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEckRyYWdEcm9wRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBmaWxlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZHJhZ1N0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kci1maWxlLXVwbG9hZC0tZHJhZ292ZXInKVxuICAgIGlzRHJhZ292ZXIgPSBmYWxzZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICghdGhpcy5pc0RyYWdvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLmlzRHJhZ292ZXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kcmFnU3RhdGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0RyYWdvdmVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzRHJhZ292ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kcmFnU3RhdGVDaGFuZ2UuZW1pdChmYWxzZSk7XG5cbiAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xuICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5maWxlRHJvcC5lbWl0KGZpbGVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DrProgressBarComponent } from '../../dr-progress-bar/dr-progress-bar.component';
|
|
4
|
+
import { TextOverflowComponent } from '../../text-overflow/text-overflow.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
function DrFileUploadItemComponent_ng_container_7_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
9
|
+
i0.ɵɵelement(1, "dr-progress-bar", 10);
|
|
10
|
+
i0.ɵɵelementEnd();
|
|
11
|
+
} if (rf & 2) {
|
|
12
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
13
|
+
i0.ɵɵattribute("aria-label", "Uploading " + ctx_r2.item.file.name + ": " + ctx_r2.item.progress + "% complete");
|
|
14
|
+
i0.ɵɵadvance(1);
|
|
15
|
+
i0.ɵɵproperty("progress", ctx_r2.item.progress)("showValue", false);
|
|
16
|
+
} }
|
|
17
|
+
function DrFileUploadItemComponent_ng_container_7_div_2_div_2_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelement(0, "i", 14);
|
|
19
|
+
} }
|
|
20
|
+
function DrFileUploadItemComponent_ng_container_7_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
22
|
+
i0.ɵɵtemplate(1, DrFileUploadItemComponent_ng_container_7_div_2_div_2_i_1_Template, 1, 0, "i", 13);
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
} if (rf & 2) {
|
|
25
|
+
const ctx_r5 = i0.ɵɵnextContext(3);
|
|
26
|
+
i0.ɵɵadvance(1);
|
|
27
|
+
i0.ɵɵproperty("ngIf", ctx_r5.item.status === "success");
|
|
28
|
+
} }
|
|
29
|
+
function DrFileUploadItemComponent_ng_container_7_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
i0.ɵɵelementStart(0, "div", 9)(1, "dr-progress-bar", 10);
|
|
31
|
+
i0.ɵɵtemplate(2, DrFileUploadItemComponent_ng_container_7_div_2_div_2_Template, 2, 1, "div", 11);
|
|
32
|
+
i0.ɵɵelementEnd()();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
35
|
+
i0.ɵɵattribute("aria-label", ctx_r3.item.file.name + " upload complete");
|
|
36
|
+
i0.ɵɵadvance(1);
|
|
37
|
+
i0.ɵɵproperty("progress", 100)("showValue", false);
|
|
38
|
+
i0.ɵɵadvance(1);
|
|
39
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.compact);
|
|
40
|
+
} }
|
|
41
|
+
function DrFileUploadItemComponent_ng_container_7_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
43
|
+
i0.ɵɵtext(1);
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
47
|
+
i0.ɵɵattribute("aria-live", ctx_r4.item.status === "error" ? "assertive" : "polite")("role", ctx_r4.item.status === "error" ? "alert" : null);
|
|
48
|
+
i0.ɵɵadvance(1);
|
|
49
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r4.statusText, " ");
|
|
50
|
+
} }
|
|
51
|
+
function DrFileUploadItemComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
+
i0.ɵɵelementContainerStart(0);
|
|
53
|
+
i0.ɵɵtemplate(1, DrFileUploadItemComponent_ng_container_7_div_1_Template, 2, 3, "div", 7);
|
|
54
|
+
i0.ɵɵtemplate(2, DrFileUploadItemComponent_ng_container_7_div_2_Template, 3, 4, "div", 7);
|
|
55
|
+
i0.ɵɵtemplate(3, DrFileUploadItemComponent_ng_container_7_div_3_Template, 2, 3, "div", 8);
|
|
56
|
+
i0.ɵɵelementContainerEnd();
|
|
57
|
+
} if (rf & 2) {
|
|
58
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
59
|
+
i0.ɵɵadvance(1);
|
|
60
|
+
i0.ɵɵproperty("ngIf", ctx_r0.item.status === "uploading" || ctx_r0.item.status === "pending");
|
|
61
|
+
i0.ɵɵadvance(1);
|
|
62
|
+
i0.ɵɵproperty("ngIf", ctx_r0.item.status === "success");
|
|
63
|
+
i0.ɵɵadvance(1);
|
|
64
|
+
i0.ɵɵproperty("ngIf", ctx_r0.statusText && !ctx_r0.compact);
|
|
65
|
+
} }
|
|
66
|
+
function DrFileUploadItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
68
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "button", 17);
|
|
69
|
+
i0.ɵɵlistener("click", function DrFileUploadItemComponent_div_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onRemoveClick()); });
|
|
70
|
+
i0.ɵɵelement(2, "i", 18);
|
|
71
|
+
i0.ɵɵelementEnd()();
|
|
72
|
+
} if (rf & 2) {
|
|
73
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
74
|
+
i0.ɵɵadvance(1);
|
|
75
|
+
i0.ɵɵattribute("aria-label", "Remove file " + ctx_r1.item.file.name);
|
|
76
|
+
} }
|
|
77
|
+
export class DrFileUploadItemComponent {
|
|
78
|
+
constructor() {
|
|
79
|
+
this.removable = true;
|
|
80
|
+
this.compact = false;
|
|
81
|
+
this.remove = new EventEmitter();
|
|
82
|
+
}
|
|
83
|
+
get statusText() {
|
|
84
|
+
switch (this.item?.status) {
|
|
85
|
+
case 'success':
|
|
86
|
+
return 'Upload completed';
|
|
87
|
+
case 'error':
|
|
88
|
+
return this.item.errorMessage || 'Upload failed';
|
|
89
|
+
case 'uploading':
|
|
90
|
+
return 'Uploading';
|
|
91
|
+
case 'idle':
|
|
92
|
+
case 'pending':
|
|
93
|
+
default:
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
get statusAriaText() {
|
|
98
|
+
switch (this.item?.status) {
|
|
99
|
+
case 'success':
|
|
100
|
+
return 'Status: Upload completed';
|
|
101
|
+
case 'error':
|
|
102
|
+
return `Status: ${this.item.errorMessage || 'Upload failed'}`;
|
|
103
|
+
case 'uploading':
|
|
104
|
+
return `Status: Uploading, ${this.item.progress}% complete`;
|
|
105
|
+
case 'pending':
|
|
106
|
+
return 'Status: Pending upload';
|
|
107
|
+
case 'idle':
|
|
108
|
+
return 'Status: Ready for upload';
|
|
109
|
+
default:
|
|
110
|
+
return '';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
get withRemoveButton() {
|
|
114
|
+
return this.removable && (!this.compact || (this.compact && this.item.status !== 'uploading'));
|
|
115
|
+
}
|
|
116
|
+
get withActions() {
|
|
117
|
+
return this.withRemoveButton;
|
|
118
|
+
}
|
|
119
|
+
onRemoveClick() {
|
|
120
|
+
this.remove.emit();
|
|
121
|
+
}
|
|
122
|
+
/** @nocollapse */ static { this.ɵfac = function DrFileUploadItemComponent_Factory(t) { return new (t || DrFileUploadItemComponent)(); }; }
|
|
123
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrFileUploadItemComponent, selectors: [["dr-file-upload-item"]], hostAttrs: ["role", "article"], hostVars: 11, hostBindings: function DrFileUploadItemComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
124
|
+
i0.ɵɵattribute("aria-label", ctx.statusAriaText);
|
|
125
|
+
i0.ɵɵclassProp("dr-file-upload-item--compact", ctx.compact)("dr-file-upload-item--success", (ctx.item == null ? null : ctx.item.status) === "success")("dr-file-upload-item--error", (ctx.item == null ? null : ctx.item.status) === "error")("dr-file-upload-item--uploading", (ctx.item == null ? null : ctx.item.status) === "uploading")("dr-file-upload-item--idle", (ctx.item == null ? null : ctx.item.status) === "idle");
|
|
126
|
+
} }, inputs: { item: "item", removable: ["removable", "removable", booleanAttribute], compact: ["compact", "compact", booleanAttribute] }, outputs: { remove: "remove" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature], decls: 9, vars: 3, consts: [["aria-hidden", "true", 1, "dr-file-upload-item__icon"], [1, "dr-icon-attachment"], [1, "dr-file-upload-item__content"], [1, "dr-file-upload-item__header"], [1, "dr-file-upload-item__filename"], [4, "ngIf"], ["class", "dr-file-upload-item__actions", 4, "ngIf"], ["class", "dr-file-upload-item__progress", 4, "ngIf"], ["class", "dr-file-upload-item__status", 4, "ngIf"], [1, "dr-file-upload-item__progress"], [3, "progress", "showValue"], ["class", "dr-file-upload-item__success-container", 4, "ngIf"], [1, "dr-file-upload-item__success-container"], ["class", "dr-file-upload-item__success-icon dr-icon-approve", "aria-hidden", "true", 4, "ngIf"], ["aria-hidden", "true", 1, "dr-file-upload-item__success-icon", "dr-icon-approve"], [1, "dr-file-upload-item__status"], [1, "dr-file-upload-item__actions"], ["type", "button", 1, "dr-file-upload-item__remove-btn", 3, "click"], ["aria-hidden", "true", 1, "dr-file-upload-item__remove-icon", "dr-icon-exit"]], template: function DrFileUploadItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
128
|
+
i0.ɵɵelement(1, "i", 1);
|
|
129
|
+
i0.ɵɵelementEnd();
|
|
130
|
+
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "span", 4)(5, "dr-text-overflow");
|
|
131
|
+
i0.ɵɵtext(6);
|
|
132
|
+
i0.ɵɵelementEnd()()();
|
|
133
|
+
i0.ɵɵtemplate(7, DrFileUploadItemComponent_ng_container_7_Template, 4, 3, "ng-container", 5);
|
|
134
|
+
i0.ɵɵelementEnd();
|
|
135
|
+
i0.ɵɵtemplate(8, DrFileUploadItemComponent_div_8_Template, 3, 1, "div", 6);
|
|
136
|
+
} if (rf & 2) {
|
|
137
|
+
i0.ɵɵadvance(6);
|
|
138
|
+
i0.ɵɵtextInterpolate1(" ", ctx.item.file.name, " ");
|
|
139
|
+
i0.ɵɵadvance(1);
|
|
140
|
+
i0.ɵɵproperty("ngIf", ctx.item.status !== "idle");
|
|
141
|
+
i0.ɵɵadvance(1);
|
|
142
|
+
i0.ɵɵproperty("ngIf", ctx.withActions);
|
|
143
|
+
} }, dependencies: [CommonModule, i1.NgIf, DrProgressBarComponent, TextOverflowComponent], styles: ["[_nghost-%COMP%]{display:flex;align-items:center;gap:8px;padding:4px 24px 4px 16px;background:#fff;border:1px solid #dfe0e3;border-radius:6px;min-height:40px;width:100%}.dr-file-upload-item--compact[_nghost-%COMP%]{padding:4px 16px 4px 8px;width:200px}.dr-file-upload-item--compact[_nghost-%COMP%] .dr-file-upload-item__icon[_ngcontent-%COMP%]{width:24px;height:24px}.dr-file-upload-item--compact[_nghost-%COMP%] .dr-file-upload-item__filename[_ngcontent-%COMP%]{font-size:12px;line-height:16px;font-weight:400}.dr-file-upload-item__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(90deg,#4646ce1a 0% 100%),#fff;border-radius:4px;flex-shrink:0}.dr-file-upload-item__icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:24px;color:#4646ce}.dr-file-upload-item__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-width:0;gap:4px}.dr-file-upload-item__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px}.dr-file-upload-item__filename[_ngcontent-%COMP%]{font-size:14px;line-height:24px;font-weight:400;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dr-file-upload-item__progress[_ngcontent-%COMP%]{width:100%}.dr-file-upload-item__progress[_ngcontent-%COMP%] dr-progress-bar[_ngcontent-%COMP%]{gap:8px}.dr-file-upload-item__status[_ngcontent-%COMP%]{font-size:12px;line-height:16px;font-weight:400;color:#aeabac;min-height:26px}.dr-file-upload-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;flex-shrink:0}.dr-file-upload-item__success-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;border-radius:50%;width:16px;height:16px;background-color:#037c5a}.dr-file-upload-item__success-icon[_ngcontent-%COMP%]{font-size:16px;color:#fff}.dr-file-upload-item__remove-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;border-radius:2px}.dr-file-upload-item__remove-btn[_ngcontent-%COMP%]:focus{outline:2px solid #4646ce;outline-offset:2px}.dr-file-upload-item__remove-btn[_ngcontent-%COMP%]:focus:not(:focus-visible){outline:none}.dr-file-upload-item__remove-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid #4646ce;outline-offset:2px}.dr-file-upload-item__remove-icon[_ngcontent-%COMP%]{font-size:24px;color:#6d6e6f;cursor:pointer;transition:color .2s ease-in-out}.dr-file-upload-item__remove-icon[_ngcontent-%COMP%]:hover{color:#333}.dr-file-upload-item--success[_nghost-%COMP%] .dr-file-upload-item__status[_ngcontent-%COMP%]{color:#037c5a}.dr-file-upload-item--error[_nghost-%COMP%] .dr-file-upload-item__status[_ngcontent-%COMP%]{color:#bf1d30}"], changeDetection: 0 }); }
|
|
144
|
+
}
|
|
145
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrFileUploadItemComponent, [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'dr-file-upload-item', standalone: true, imports: [CommonModule, DrProgressBarComponent, TextOverflowComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
148
|
+
role: 'article',
|
|
149
|
+
'[attr.aria-label]': 'statusAriaText',
|
|
150
|
+
'[class.dr-file-upload-item--compact]': 'compact',
|
|
151
|
+
'[class.dr-file-upload-item--success]': 'item?.status === "success"',
|
|
152
|
+
'[class.dr-file-upload-item--error]': 'item?.status === "error"',
|
|
153
|
+
'[class.dr-file-upload-item--uploading]': 'item?.status === "uploading"',
|
|
154
|
+
'[class.dr-file-upload-item--idle]': 'item?.status === "idle"',
|
|
155
|
+
}, template: "<div class=\"dr-file-upload-item__icon\" aria-hidden=\"true\">\n <i class=\"dr-icon-attachment\"></i>\n</div>\n\n<div class=\"dr-file-upload-item__content\">\n <div class=\"dr-file-upload-item__header\">\n <span class=\"dr-file-upload-item__filename\">\n <dr-text-overflow>\n {{ item.file.name }}\n </dr-text-overflow>\n </span>\n </div>\n\n <ng-container *ngIf=\"item.status !== 'idle'\">\n <div\n class=\"dr-file-upload-item__progress\"\n *ngIf=\"item.status === 'uploading' || item.status === 'pending'\"\n [attr.aria-label]=\"'Uploading ' + item.file.name + ': ' + item.progress + '% complete'\">\n <dr-progress-bar [progress]=\"item.progress\" [showValue]=\"false\"></dr-progress-bar>\n </div>\n\n <div\n class=\"dr-file-upload-item__progress\"\n *ngIf=\"item.status === 'success'\"\n [attr.aria-label]=\"item.file.name + ' upload complete'\">\n <dr-progress-bar [progress]=\"100\" [showValue]=\"false\">\n <div class=\"dr-file-upload-item__success-container\" *ngIf=\"!compact\">\n <i\n *ngIf=\"item.status === 'success'\"\n class=\"dr-file-upload-item__success-icon dr-icon-approve\"\n aria-hidden=\"true\">\n </i>\n </div>\n </dr-progress-bar>\n </div>\n\n <div\n class=\"dr-file-upload-item__status\"\n *ngIf=\"statusText && !compact\"\n [attr.aria-live]=\"item.status === 'error' ? 'assertive' : 'polite'\"\n [attr.role]=\"item.status === 'error' ? 'alert' : null\">\n {{ statusText }}\n </div>\n </ng-container>\n</div>\n\n<div class=\"dr-file-upload-item__actions\" *ngIf=\"withActions\">\n <button\n type=\"button\"\n class=\"dr-file-upload-item__remove-btn\"\n [attr.aria-label]=\"'Remove file ' + item.file.name\"\n (click)=\"onRemoveClick()\">\n <i class=\"dr-file-upload-item__remove-icon dr-icon-exit\" aria-hidden=\"true\"></i>\n </button>\n</div>\n", styles: [":host{display:flex;align-items:center;gap:8px;padding:4px 24px 4px 16px;background:#fff;border:1px solid #dfe0e3;border-radius:6px;min-height:40px;width:100%}:host.dr-file-upload-item--compact{padding:4px 16px 4px 8px;width:200px}:host.dr-file-upload-item--compact .dr-file-upload-item__icon{width:24px;height:24px}:host.dr-file-upload-item--compact .dr-file-upload-item__filename{font-size:12px;line-height:16px;font-weight:400}.dr-file-upload-item__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(90deg,#4646ce1a 0% 100%),#fff;border-radius:4px;flex-shrink:0}.dr-file-upload-item__icon i{font-size:24px;color:#4646ce}.dr-file-upload-item__content{display:flex;flex-direction:column;flex:1;min-width:0;gap:4px}.dr-file-upload-item__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.dr-file-upload-item__filename{font-size:14px;line-height:24px;font-weight:400;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dr-file-upload-item__progress{width:100%}.dr-file-upload-item__progress dr-progress-bar{gap:8px}.dr-file-upload-item__status{font-size:12px;line-height:16px;font-weight:400;color:#aeabac;min-height:26px}.dr-file-upload-item__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.dr-file-upload-item__success-container{display:flex;align-items:center;justify-content:center;border-radius:50%;width:16px;height:16px;background-color:#037c5a}.dr-file-upload-item__success-icon{font-size:16px;color:#fff}.dr-file-upload-item__remove-btn{display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;border-radius:2px}.dr-file-upload-item__remove-btn:focus{outline:2px solid #4646ce;outline-offset:2px}.dr-file-upload-item__remove-btn:focus:not(:focus-visible){outline:none}.dr-file-upload-item__remove-btn:focus-visible{outline:2px solid #4646ce;outline-offset:2px}.dr-file-upload-item__remove-icon{font-size:24px;color:#6d6e6f;cursor:pointer;transition:color .2s ease-in-out}.dr-file-upload-item__remove-icon:hover{color:#333}:host(.dr-file-upload-item--success) .dr-file-upload-item__status{color:#037c5a}:host(.dr-file-upload-item--error) .dr-file-upload-item__status{color:#bf1d30}\n"] }]
|
|
156
|
+
}], null, { item: [{
|
|
157
|
+
type: Input,
|
|
158
|
+
args: [{ required: true }]
|
|
159
|
+
}], removable: [{
|
|
160
|
+
type: Input,
|
|
161
|
+
args: [{ transform: booleanAttribute }]
|
|
162
|
+
}], compact: [{
|
|
163
|
+
type: Input,
|
|
164
|
+
args: [{ transform: booleanAttribute }]
|
|
165
|
+
}], remove: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}] }); })();
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlsZS11cGxvYWQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1maWxlLXVwbG9hZC9kci1maWxlLXVwbG9hZC1pdGVtL2RyLWZpbGUtdXBsb2FkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZmlsZS11cGxvYWQvZHItZmlsZS11cGxvYWQtaXRlbS9kci1maWxlLXVwbG9hZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0lDVTVFLDhCQUc0RjtJQUN4RixzQ0FBa0Y7SUFDdEYsaUJBQU07OztJQUZGLCtHQUF1RjtJQUN0RSxlQUEwQjtJQUExQiwrQ0FBMEIsb0JBQUE7OztJQVNuQyx3QkFJSTs7O0lBTFIsK0JBQXFFO0lBQ2pFLGtHQUlJO0lBQ1IsaUJBQU07OztJQUpHLGVBQStCO0lBQS9CLHVEQUErQjs7O0lBUGhELDhCQUc0RCwwQkFBQTtJQUVwRCxnR0FNTTtJQUNWLGlCQUFrQixFQUFBOzs7SUFUbEIsd0VBQXVEO0lBQ3RDLGVBQWdCO0lBQWhCLDhCQUFnQixvQkFBQTtJQUN3QixlQUFjO0lBQWQsc0NBQWM7OztJQVUzRSwrQkFJMkQ7SUFDdkQsWUFDSjtJQUFBLGlCQUFNOzs7SUFI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QUUsZ0JBQWdCO29CQUNyQyxzQ0FBc0MsRUFBRSxTQUFTO29CQUNqRCxzQ0FBc0MsRUFBRSw0QkFBNEI7b0JBQ3BFLG9DQUFvQyxFQUFFLDBCQUEwQjtvQkFDaEUsd0NBQXdDLEVBQUUsOEJBQThCO29CQUN4RSxtQ0FBbUMsRUFBRSx5QkFBeUI7aUJBQ2pFO2dCQUlELElBQUk7a0JBREgsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFHekIsU0FBUztrQkFEUixLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBR3RDLE9BQU87a0JBRE4sS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUk3QixNQUFNO2tCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGaWxlVXBsb2FkSXRlbSB9IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC5tb2RlbHMnO1xuaW1wb3J0IHsgRHJQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RyLXByb2dyZXNzLWJhci9kci1wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRPdmVyZmxvd0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHQtb3ZlcmZsb3cvdGV4dC1vdmVyZmxvdy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWZpbGUtdXBsb2FkLWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJQcm9ncmVzc0JhckNvbXBvbmVudCwgVGV4dE92ZXJmbG93Q29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZmlsZS11cGxvYWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZmlsZS11cGxvYWQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2FydGljbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnc3RhdHVzQXJpYVRleHQnLFxuICAgICAgICAnW2NsYXNzLmRyLWZpbGUtdXBsb2FkLWl0ZW0tLWNvbXBhY3RdJzogJ2NvbXBhY3QnLFxuICAgICAgICAnW2NsYXNzLmRyLWZpbGUtdXBsb2FkLWl0ZW0tLXN1Y2Nlc3NdJzogJ2l0ZW0/LnN0YXR1cyA9PT0gXCJzdWNjZXNzXCInLFxuICAgICAgICAnW2NsYXNzLmRyLWZpbGUtdXBsb2FkLWl0ZW0tLWVycm9yXSc6ICdpdGVtPy5zdGF0dXMgPT09IFwiZXJyb3JcIicsXG4gICAgICAgICdbY2xhc3MuZHItZmlsZS11cGxvYWQtaXRlbS0tdXBsb2FkaW5nXSc6ICdpdGVtPy5zdGF0dXMgPT09IFwidXBsb2FkaW5nXCInLFxuICAgICAgICAnW2NsYXNzLmRyLWZpbGUtdXBsb2FkLWl0ZW0tLWlkbGVdJzogJ2l0ZW0/LnN0YXR1cyA9PT0gXCJpZGxlXCInLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIERyRmlsZVVwbG9hZEl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgaXRlbSE6IEZpbGVVcGxvYWRJdGVtO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHJlbW92YWJsZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgY29tcGFjdCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgZ2V0IHN0YXR1c1RleHQoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLml0ZW0/LnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdVcGxvYWQgY29tcGxldGVkJztcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtLmVycm9yTWVzc2FnZSB8fCAnVXBsb2FkIGZhaWxlZCc7XG4gICAgICAgICAgICBjYXNlICd1cGxvYWRpbmcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnVXBsb2FkaW5nJztcbiAgICAgICAgICAgIGNhc2UgJ2lkbGUnOlxuICAgICAgICAgICAgY2FzZSAncGVuZGluZyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBzdGF0dXNBcmlhVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaXRlbT8uc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1N0YXR1czogVXBsb2FkIGNvbXBsZXRlZCc7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBTdGF0dXM6ICR7dGhpcy5pdGVtLmVycm9yTWVzc2FnZSB8fCAnVXBsb2FkIGZhaWxlZCd9YDtcbiAgICAgICAgICAgIGNhc2UgJ3VwbG9hZGluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBTdGF0dXM6IFVwbG9hZGluZywgJHt0aGlzLml0ZW0ucHJvZ3Jlc3N9JSBjb21wbGV0ZWA7XG4gICAgICAgICAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1N0YXR1czogUGVuZGluZyB1cGxvYWQnO1xuICAgICAgICAgICAgY2FzZSAnaWRsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdTdGF0dXM6IFJlYWR5IGZvciB1cGxvYWQnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgd2l0aFJlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZhYmxlICYmICghdGhpcy5jb21wYWN0IHx8ICh0aGlzLmNvbXBhY3QgJiYgdGhpcy5pdGVtLnN0YXR1cyAhPT0gJ3VwbG9hZGluZycpKTtcbiAgICB9XG5cbiAgICBnZXQgd2l0aEFjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhSZW1vdmVCdXR0b247XG4gICAgfVxuXG4gICAgb25SZW1vdmVDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmUuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkci1maWxlLXVwbG9hZC1pdGVtX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGkgY2xhc3M9XCJkci1pY29uLWF0dGFjaG1lbnRcIj48L2k+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRyLWZpbGUtdXBsb2FkLWl0ZW1fX2NvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9faGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9fZmlsZW5hbWVcIj5cbiAgICAgICAgICAgIDxkci10ZXh0LW92ZXJmbG93PlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0uZmlsZS5uYW1lIH19XG4gICAgICAgICAgICA8L2RyLXRleHQtb3ZlcmZsb3c+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnN0YXR1cyAhPT0gJ2lkbGUnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9fcHJvZ3Jlc3NcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycgfHwgaXRlbS5zdGF0dXMgPT09ICdwZW5kaW5nJ1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidVcGxvYWRpbmcgJyArIGl0ZW0uZmlsZS5uYW1lICsgJzogJyArIGl0ZW0ucHJvZ3Jlc3MgKyAnJSBjb21wbGV0ZSdcIj5cbiAgICAgICAgICAgIDxkci1wcm9ncmVzcy1iYXIgW3Byb2dyZXNzXT1cIml0ZW0ucHJvZ3Jlc3NcIiBbc2hvd1ZhbHVlXT1cImZhbHNlXCI+PC9kci1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9fcHJvZ3Jlc3NcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5maWxlLm5hbWUgKyAnIHVwbG9hZCBjb21wbGV0ZSdcIj5cbiAgICAgICAgICAgIDxkci1wcm9ncmVzcy1iYXIgW3Byb2dyZXNzXT1cIjEwMFwiIFtzaG93VmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9fc3VjY2Vzcy1jb250YWluZXJcIiAqbmdJZj1cIiFjb21wYWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAnc3VjY2VzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkci1maWxlLXVwbG9hZC1pdGVtX19zdWNjZXNzLWljb24gZHItaWNvbi1hcHByb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2RyLXByb2dyZXNzLWJhcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkci1maWxlLXVwbG9hZC1pdGVtX19zdGF0dXNcIlxuICAgICAgICAgICAgKm5nSWY9XCJzdGF0dXNUZXh0ICYmICFjb21wYWN0XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLnN0YXR1cyA9PT0gJ2Vycm9yJyA/ICdhc3NlcnRpdmUnIDogJ3BvbGl0ZSdcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJpdGVtLnN0YXR1cyA9PT0gJ2Vycm9yJyA/ICdhbGVydCcgOiBudWxsXCI+XG4gICAgICAgICAgICB7eyBzdGF0dXNUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkci1maWxlLXVwbG9hZC1pdGVtX19hY3Rpb25zXCIgKm5nSWY9XCJ3aXRoQWN0aW9uc1wiPlxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZHItZmlsZS11cGxvYWQtaXRlbV9fcmVtb3ZlLWJ0blwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZSBmaWxlICcgKyBpdGVtLmZpbGUubmFtZVwiXG4gICAgICAgIChjbGljayk9XCJvblJlbW92ZUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJkci1maWxlLXVwbG9hZC1pdGVtX19yZW1vdmUtaWNvbiBkci1pY29uLWV4aXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|