barsa-develop-components 1.0.272 → 1.0.273
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/esm2020/lib/media-file-uploader/media-file-uploader.component.mjs +3 -3
- package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +9 -3
- package/fesm2015/barsa-develop-components.mjs +10 -4
- package/fesm2015/barsa-develop-components.mjs.map +1 -1
- package/fesm2020/barsa-develop-components.mjs +10 -4
- package/fesm2020/barsa-develop-components.mjs.map +1 -1
- package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -221,10 +221,10 @@ export class MediaFileUploaderComponent extends UiPdfViewerComponent {
|
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
MediaFileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
MediaFileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MediaFileUploaderComponent, selector: "bdc-media-file-uploader", providers: [AudioRecordingService, VideoRecordingService, UploadService], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true }, { propertyName: "photoElement", first: true, predicate: ["photoElement"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\
|
|
224
|
+
MediaFileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MediaFileUploaderComponent, selector: "bdc-media-file-uploader", providers: [AudioRecordingService, VideoRecordingService, UploadService], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true }, { propertyName: "photoElement", first: true, predicate: ["photoElement"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\n <fd-card-content class=\"file-content\">\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\n <div class=\"icon\">\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </div>\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </video>\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\n </audio>\n <input\n #photoElement\n *ngIf=\"recordType === 'photo'\"\n type=\"file\"\n accept=\"image/*\"\n id=\"file-input\"\n capture=\"environment\"\n (change)=\"onTakePhoto()\"\n />\n </div>\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\n <div>\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\n </div>\n <div>{{ fileName }}</div>\n </div>\n <ng-container *ngIf=\"uploadingState$ | async as uploadingState\">\n <div class=\"progress\" *ngIf=\"uploadingState.state === 'Uploading'\">\n <div>\n <fd-progress-indicator\n state=\"informative\"\n [valueNow]=\"uploadingState?.progress\"\n ></fd-progress-indicator>\n </div>\n </div>\n </ng-container>\n <div class=\"btn-wrapper\">\n <button\n class=\"btn-record\"\n *ngIf=\"!value && !valueUrl\"\n fd-button\n [glyph]=\"isRecording ? 'stop' : 'record'\"\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\n (click)=\"onToggleRecord()\"\n ></button>\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\n </div>\n <div *ngIf=\"value\" class=\"btn-toolbar\">\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\n </div>\n </div>\n </fd-card-content>\n</fd-card>\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i3.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i4.NestedListIconDirective, selector: "[fdNestedDirectivesIcon], [fd-nested-list-icon]", inputs: ["class", "glyph", "role"] }, { kind: "component", type: i5.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
225
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, decorators: [{
|
|
226
226
|
type: Component,
|
|
227
|
-
args: [{ selector: 'bdc-media-file-uploader', changeDetection: ChangeDetectionStrategy.OnPush, providers: [AudioRecordingService, VideoRecordingService, UploadService], template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\
|
|
227
|
+
args: [{ selector: 'bdc-media-file-uploader', changeDetection: ChangeDetectionStrategy.OnPush, providers: [AudioRecordingService, VideoRecordingService, UploadService], template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\n <fd-card-content class=\"file-content\">\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\n <div class=\"icon\">\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </div>\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </video>\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\n </audio>\n <input\n #photoElement\n *ngIf=\"recordType === 'photo'\"\n type=\"file\"\n accept=\"image/*\"\n id=\"file-input\"\n capture=\"environment\"\n (change)=\"onTakePhoto()\"\n />\n </div>\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\n <div>\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\n </div>\n <div>{{ fileName }}</div>\n </div>\n <ng-container *ngIf=\"uploadingState$ | async as uploadingState\">\n <div class=\"progress\" *ngIf=\"uploadingState.state === 'Uploading'\">\n <div>\n <fd-progress-indicator\n state=\"informative\"\n [valueNow]=\"uploadingState?.progress\"\n ></fd-progress-indicator>\n </div>\n </div>\n </ng-container>\n <div class=\"btn-wrapper\">\n <button\n class=\"btn-record\"\n *ngIf=\"!value && !valueUrl\"\n fd-button\n [glyph]=\"isRecording ? 'stop' : 'record'\"\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\n (click)=\"onToggleRecord()\"\n ></button>\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\n </div>\n <div *ngIf=\"value\" class=\"btn-toolbar\">\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\n </div>\n </div>\n </fd-card-content>\n</fd-card>\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"] }]
|
|
228
228
|
}], propDecorators: { videoElement: [{
|
|
229
229
|
type: ViewChild,
|
|
230
230
|
args: ['videoElement']
|
|
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
235
235
|
type: ViewChild,
|
|
236
236
|
args: ['container', { read: TemplateRef }]
|
|
237
237
|
}] } });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9tZWRpYS1maWxlLXVwbG9hZGVyL21lZGlhLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbWVkaWEtZmlsZS11cGxvYWRlci9tZWRpYS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFTcEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVBwRTs7UUFhSSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTXBCLGNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFdkUsZUFBVSxHQUFHLE9BQU8sQ0FBQztLQXlOeEI7SUF2TkcsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUM1QyxD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eUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxDQUFDOzhCQUc3QyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUV6QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLCBCYXJzYUFwaSwgVXBsb2FkU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdiYXJzYS1zYXAtdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1tZWRpYS1maWxlLXVwbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0F1ZGlvUmVjb3JkaW5nU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlLCBVcGxvYWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCBleHRlbmRzIFVpUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd2aWRlb0VsZW1lbnQnKSB2aWRlb0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdwaG90b0VsZW1lbnQnKSBwaG90b0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgZGlzcGxheUNvbnRyb2xzID0gdHJ1ZTtcbiAgICBpc1JlY29yZGluZyA9IGZhbHNlO1xuICAgIHJlY29yZGVkVGltZTtcbiAgICBmaWxlQmxvYjtcbiAgICBmaWxlTmFtZTtcbiAgICBhdWRpb1N0cmVhbTtcbiAgICB2aWRlb1N0cmVhbTogTWVkaWFTdHJlYW07XG4gICAgYXVkaW9Db25mID0geyBhdWRpbzogdHJ1ZSB9O1xuICAgIHZpZGVvQ29uZiA9IHsgdmlkZW86IHsgZmFjaW5nTW9kZTogJ3VzZXInLCB3aWR0aDogMzIwIH0sIGF1ZGlvOiB0cnVlIH07XG4gICAgZ2x5cGg6IHN0cmluZztcbiAgICByZWNvcmRUeXBlID0gJ2F1ZGlvJztcblxuICAgIGdldCB2aWRlbygpOiBIVE1MTWVkaWFFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlkZW9FbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICBnZXQgZmlsZUlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5waG90b0VsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIucmVjb3JkaW5nRmFpbGVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZFRpbWUoKS5zdWJzY3JpYmUoKHRpbWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVjb3JkZWRUaW1lID0gdGltZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRTdHJlYW0oKS5zdWJzY3JpYmUoKHN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWRlb1N0cmVhbSA9IHN0cmVhbTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChkYXRhLnVybCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLnJlY29yZGluZ0ZhaWxlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmdldFJlY29yZGVkVGltZSgpLnN1YnNjcmliZSgodGltZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWNvcmRlZFRpbWUgPSB0aW1lO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGRhdGEuYmxvYikpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBnbHlwaCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVjb3JkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtYXVkaW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtdmlkZW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBnbHlwaCA9ICdhdHRhY2htZW50LXBob3RvJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdseXBoID0gZ2x5cGg7XG4gICAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLnZhbHVlPy5GaWxlTmFtZTtcbiAgICAgICAgdGhpcy5yZWNvcmRUeXBlID0gdGhpcy5wYXJhbWV0ZXJzPy5NZWRpYVR5cGUkQ2FwdGlvbiB8fCAnYXVkaW8nO1xuICAgIH1cblxuICAgIG9uRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkRlbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXJSZWNvcmQoKTtcbiAgICB9XG4gICAgb25DbGVhclJlY29yZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYm9ydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgIHRoaXMuYWJvcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICB0aGlzLmZpbGVCbG9iID0gbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZVVybCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIG9uVG9nZ2xlUmVjb3JkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1JlY29yZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEF1ZGlvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy52aWRlby5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVmlkZW9SZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAncGhvdG8nKSB7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWtlUGhvdG8oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dD8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZUlucHV0LmZpbGVzLml0ZW0oMCk7XG4gICAgICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShbZmlsZV0pLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVXBsb2FkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWRlb0ZpbGU6IEZpbGUgPSBuZXcgRmlsZShbdGhpcy5maWxlQmxvYl0sIHRoaXMuZmlsZU5hbWUpO1xuICAgICAgICB0aGlzLl91cGxvYWRGaWxlKFt2aWRlb0ZpbGVdKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgc3RhcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvUmVjb2RlclxuICAgICAgICAgICAgICAgIC5zdGFydFJlY29yZGluZyh0aGlzLnZpZGVvQ29uZilcbiAgICAgICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMudmlkZW8uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlkZW8ucGxheSgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLm5hbWUgKyAnOiAnICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIuYWJvcnRSZWNvcmRpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52aWRlbykge1xuICAgICAgICAgICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uY29udHJvbHMgPSBmYWxzZTtcbiAgICAgICAgICAgIHZpZGVvLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wVmlkZW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy5fdmlkZW9SZWNvZGVyLnN0b3BSZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZGVvOiBhbnkgPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gdGhpcy52YWx1ZVVybDtcbiAgICAgICAgICAgIHZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyVmlkZW9SZWNvcmRlZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVVcmwgPSBudWxsO1xuICAgICAgICBjb25zdCB2aWRlbyA9IHRoaXMudmlkZW87XG4gICAgICAgIHZpZGVvLnNyY09iamVjdCA9IG51bGw7XG4gICAgICAgIHZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRWaWRlb1JlY29yZGVkRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlKHRoaXMuZmlsZUJsb2IsICd2aWRlby9tcDQnLCB0aGlzLmZpbGVOYW1lKTtcbiAgICB9XG5cbiAgICBzdGFydEF1ZGlvUmVjb3JkaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNSZWNvcmRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdGFydFJlY29yZGluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRBdWRpb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmFib3J0UmVjb3JkaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wQXVkaW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdG9wUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlVXJsID0gbnVsbDtcbiAgICB9XG5cbiAgICBkb3dubG9hZEF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUodGhpcy5maWxlQmxvYiwgJ2F1ZGlvL21wMycsIHRoaXMuZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFib3J0QXVkaW9SZWNvcmRpbmcoKTtcbiAgICB9XG5cbiAgICBfZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgLy8gdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgIC8vIGNvbnN0IHVybCA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYW5jaG9yLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGFuY2hvci5ocmVmID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFuY2hvcik7XG4gICAgICAgIGFuY2hvci5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG93bmxvYWRGaWxlSWRDb21wbGV0ZWQocmVzcG9uc2UpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX2Rvd25sb2FkRmlsZUlkQ29tcGxldGVkKHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVVcmwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZFR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlZnJlc2goXz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKEJhcnNhQXBpLkV4dC5pc0VtcHR5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZUlkID0gdGhpcy52YWx1ZS5JZDtcbiAgICAgICAgdGhpcy5Eb3dubG9hZEZpbGVJZChmaWxlSWQsIHRydWUsICcnLCBudWxsLCBmYWxzZSk7XG4gICAgfVxufVxuIiwiPGZkLWNhcmQgY2xhc3M9XCJ1cGxvYWRcIiBbbmdDbGFzc109XCJyZWNvcmRUeXBlXCI+XHJcbiAgICA8ZmQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmlsZS1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBbY2xhc3Mubm8tcmVjb3JkaW5nXT1cIiFpc1JlY29yZGluZyAmJiB2YWx1ZVVybFwiIFtuZ0NsYXNzXT1cInJlY29yZFR5cGVcIiBjbGFzcz1cIm1lZGlhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJsZWZ0OiA0NSU7IHBvc2l0aW9uOiBhYnNvbHV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtbmVzdGVkLWxpc3QtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmFsdWUgJiYgIXZhbHVlVXJsICYmICFpc1JlY29yZGluZ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHZpZGVvICN2aWRlb0VsZW1lbnQgKm5nSWY9XCJyZWNvcmRUeXBlID09PSAndmlkZW8nXCIgW2NsYXNzLnZpZGVvLW5vdmFsdWVdPVwiIXZhbHVlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICA8c291cmNlICpuZ0lmPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsXCIgW3NyY109XCJ2YWx1ZVVybFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogNDUlOyBwb3NpdGlvbjogYWJzb2x1dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkLW5lc3RlZC1saXN0LWljb25cclxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlICYmICF2YWx1ZVVybCAmJiAhaXNSZWNvcmRpbmdcIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgPGF1ZGlvICpuZ0lmPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsICYmIHJlY29yZFR5cGUgPT09ICdhdWRpbydcIiBjb250cm9scz5cclxuICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJ2YWx1ZVVybFwiIHR5cGU9XCJhdWRpby9tcDNcIiAvPlxyXG4gICAgICAgICAgICA8L2F1ZGlvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICNwaG90b0VsZW1lbnRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicmVjb3JkVHlwZSA9PT0gJ3Bob3RvJ1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZmlsZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBjYXB0dXJlPVwiZW52aXJvbm1lbnRcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRha2VQaG90bygpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNSZWNvcmRpbmcgfHwgdmFsdWVVcmxcIiBjbGFzcz1cIm1lZGlhLWluZm9cIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIHt7ICFpc1JlY29yZGluZyA/ICcnIDogKCdSZWNvcmRpbmcnIHwgYmJiVHJhbnNsYXRlKSB9fSA8c3Ryb25nPnt7IHJlY29yZGVkVGltZSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj57eyBmaWxlTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwidXBsb2FkaW5nU3RhdGUkIHwgYXN5bmMgYXMgdXBsb2FkaW5nU3RhdGVcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxmZC1wcm9ncmVzcy1pbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZT1cImluZm9ybWF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwidXBsb2FkaW5nU3RhdGU/LnByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLXByb2dyZXNzLWluZGljYXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLXJlY29yZFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZSAmJiAhdmFsdWVVcmxcIlxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaXNSZWNvcmRpbmcgPyAnc3RvcCcgOiAncmVjb3JkJ1wiXHJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImlzUmVjb3JkaW5nID8gJ2F0dGVudGlvbicgOiAnZ2hvc3QnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVJlY29yZCgpXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZhbHVlICYmIHZhbHVlVXJsXCIgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2dseXBoXT1cIidkZWxldGUnXCIgZmRUeXBlPVwibmVnYXRpdmVcIiAoY2xpY2spPVwib25DbGVhclJlY29yZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbbGFiZWxdPVwiJ1VwbG9hZCcgfCBiYmJUcmFuc2xhdGVcIiBbZ2x5cGhdPVwiJ3VwbG9hZCdcIiAoY2xpY2spPVwib25VcGxvYWQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlXCIgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInZhbHVlXCIgZmQtYnV0dG9uIFtnbHlwaF09XCInZGVsZXRlJ1wiIGZkVHlwZT1cIm5lZ2F0aXZlXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ2YWx1ZVwiIGZkLWJ1dHRvbiBbZ2x5cGhdPVwiJ2Rvd25sb2FkJ1wiIGZkVHlwZT1cInN0YW5kYXJkXCIgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZmQtY2FyZC1jb250ZW50PlxyXG48L2ZkLWNhcmQ+XHJcbiJdfQ==
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9tZWRpYS1maWxlLXVwbG9hZGVyL21lZGlhLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbWVkaWEtZmlsZS11cGxvYWRlci9tZWRpYS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFTcEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVBwRTs7UUFhSSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTXBCLGNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFdkUsZUFBVSxHQUFHLE9BQU8sQ0FBQztLQXlOeEI7SUF2TkcsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUM1QyxD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eUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxDQUFDOzhCQUc3QyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUV6QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLCBCYXJzYUFwaSwgVXBsb2FkU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdiYXJzYS1zYXAtdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1tZWRpYS1maWxlLXVwbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0F1ZGlvUmVjb3JkaW5nU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlLCBVcGxvYWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCBleHRlbmRzIFVpUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd2aWRlb0VsZW1lbnQnKSB2aWRlb0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdwaG90b0VsZW1lbnQnKSBwaG90b0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgZGlzcGxheUNvbnRyb2xzID0gdHJ1ZTtcbiAgICBpc1JlY29yZGluZyA9IGZhbHNlO1xuICAgIHJlY29yZGVkVGltZTtcbiAgICBmaWxlQmxvYjtcbiAgICBmaWxlTmFtZTtcbiAgICBhdWRpb1N0cmVhbTtcbiAgICB2aWRlb1N0cmVhbTogTWVkaWFTdHJlYW07XG4gICAgYXVkaW9Db25mID0geyBhdWRpbzogdHJ1ZSB9O1xuICAgIHZpZGVvQ29uZiA9IHsgdmlkZW86IHsgZmFjaW5nTW9kZTogJ3VzZXInLCB3aWR0aDogMzIwIH0sIGF1ZGlvOiB0cnVlIH07XG4gICAgZ2x5cGg6IHN0cmluZztcbiAgICByZWNvcmRUeXBlID0gJ2F1ZGlvJztcblxuICAgIGdldCB2aWRlbygpOiBIVE1MTWVkaWFFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlkZW9FbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICBnZXQgZmlsZUlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5waG90b0VsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIucmVjb3JkaW5nRmFpbGVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZFRpbWUoKS5zdWJzY3JpYmUoKHRpbWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVjb3JkZWRUaW1lID0gdGltZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRTdHJlYW0oKS5zdWJzY3JpYmUoKHN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWRlb1N0cmVhbSA9IHN0cmVhbTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChkYXRhLnVybCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLnJlY29yZGluZ0ZhaWxlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmdldFJlY29yZGVkVGltZSgpLnN1YnNjcmliZSgodGltZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWNvcmRlZFRpbWUgPSB0aW1lO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGRhdGEuYmxvYikpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBnbHlwaCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVjb3JkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtYXVkaW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtdmlkZW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBnbHlwaCA9ICdhdHRhY2htZW50LXBob3RvJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdseXBoID0gZ2x5cGg7XG4gICAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLnZhbHVlPy5GaWxlTmFtZTtcbiAgICAgICAgdGhpcy5yZWNvcmRUeXBlID0gdGhpcy5wYXJhbWV0ZXJzPy5NZWRpYVR5cGUkQ2FwdGlvbiB8fCAnYXVkaW8nO1xuICAgIH1cblxuICAgIG9uRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkRlbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXJSZWNvcmQoKTtcbiAgICB9XG4gICAgb25DbGVhclJlY29yZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYm9ydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgIHRoaXMuYWJvcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICB0aGlzLmZpbGVCbG9iID0gbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZVVybCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIG9uVG9nZ2xlUmVjb3JkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1JlY29yZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEF1ZGlvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy52aWRlby5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVmlkZW9SZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAncGhvdG8nKSB7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWtlUGhvdG8oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dD8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZUlucHV0LmZpbGVzLml0ZW0oMCk7XG4gICAgICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShbZmlsZV0pLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVXBsb2FkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWRlb0ZpbGU6IEZpbGUgPSBuZXcgRmlsZShbdGhpcy5maWxlQmxvYl0sIHRoaXMuZmlsZU5hbWUpO1xuICAgICAgICB0aGlzLl91cGxvYWRGaWxlKFt2aWRlb0ZpbGVdKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgc3RhcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvUmVjb2RlclxuICAgICAgICAgICAgICAgIC5zdGFydFJlY29yZGluZyh0aGlzLnZpZGVvQ29uZilcbiAgICAgICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMudmlkZW8uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlkZW8ucGxheSgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLm5hbWUgKyAnOiAnICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIuYWJvcnRSZWNvcmRpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52aWRlbykge1xuICAgICAgICAgICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uY29udHJvbHMgPSBmYWxzZTtcbiAgICAgICAgICAgIHZpZGVvLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wVmlkZW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy5fdmlkZW9SZWNvZGVyLnN0b3BSZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZGVvOiBhbnkgPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gdGhpcy52YWx1ZVVybDtcbiAgICAgICAgICAgIHZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyVmlkZW9SZWNvcmRlZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVVcmwgPSBudWxsO1xuICAgICAgICBjb25zdCB2aWRlbyA9IHRoaXMudmlkZW87XG4gICAgICAgIHZpZGVvLnNyY09iamVjdCA9IG51bGw7XG4gICAgICAgIHZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRWaWRlb1JlY29yZGVkRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlKHRoaXMuZmlsZUJsb2IsICd2aWRlby9tcDQnLCB0aGlzLmZpbGVOYW1lKTtcbiAgICB9XG5cbiAgICBzdGFydEF1ZGlvUmVjb3JkaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNSZWNvcmRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdGFydFJlY29yZGluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRBdWRpb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmFib3J0UmVjb3JkaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wQXVkaW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdG9wUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlVXJsID0gbnVsbDtcbiAgICB9XG5cbiAgICBkb3dubG9hZEF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUodGhpcy5maWxlQmxvYiwgJ2F1ZGlvL21wMycsIHRoaXMuZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFib3J0QXVkaW9SZWNvcmRpbmcoKTtcbiAgICB9XG5cbiAgICBfZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgLy8gdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgIC8vIGNvbnN0IHVybCA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYW5jaG9yLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGFuY2hvci5ocmVmID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFuY2hvcik7XG4gICAgICAgIGFuY2hvci5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG93bmxvYWRGaWxlSWRDb21wbGV0ZWQocmVzcG9uc2UpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX2Rvd25sb2FkRmlsZUlkQ29tcGxldGVkKHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVVcmwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZFR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlZnJlc2goXz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKEJhcnNhQXBpLkV4dC5pc0VtcHR5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZUlkID0gdGhpcy52YWx1ZS5JZDtcbiAgICAgICAgdGhpcy5Eb3dubG9hZEZpbGVJZChmaWxlSWQsIHRydWUsICcnLCBudWxsLCBmYWxzZSk7XG4gICAgfVxufVxuIiwiPGZkLWNhcmQgY2xhc3M9XCJ1cGxvYWRcIiBbbmdDbGFzc109XCJyZWNvcmRUeXBlXCI+XG4gICAgPGZkLWNhcmQtY29udGVudCBjbGFzcz1cImZpbGUtY29udGVudFwiPlxuICAgICAgICA8ZGl2IFtjbGFzcy5uby1yZWNvcmRpbmddPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsXCIgW25nQ2xhc3NdPVwicmVjb3JkVHlwZVwiIGNsYXNzPVwibWVkaWEtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImxlZnQ6IDQ1JTsgcG9zaXRpb246IGFic29sdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtbmVzdGVkLWxpc3QtaWNvblxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZSAmJiAhdmFsdWVVcmwgJiYgIWlzUmVjb3JkaW5nXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dmlkZW8gI3ZpZGVvRWxlbWVudCAqbmdJZj1cInJlY29yZFR5cGUgPT09ICd2aWRlbydcIiBbY2xhc3MudmlkZW8tbm92YWx1ZV09XCIhdmFsdWVVcmxcIj5cbiAgICAgICAgICAgICAgICA8c291cmNlICpuZ0lmPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsXCIgW3NyY109XCJ2YWx1ZVVybFwiIC8+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJsZWZ0OiA0NSU7IHBvc2l0aW9uOiBhYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZkLW5lc3RlZC1saXN0LWljb25cbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImdseXBoXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmFsdWUgJiYgIXZhbHVlVXJsICYmICFpc1JlY29yZGluZ1wiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDwvdmlkZW8+XG4gICAgICAgICAgICA8YXVkaW8gKm5nSWY9XCIhaXNSZWNvcmRpbmcgJiYgdmFsdWVVcmwgJiYgcmVjb3JkVHlwZSA9PT0gJ2F1ZGlvJ1wiIGNvbnRyb2xzPlxuICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJ2YWx1ZVVybFwiIHR5cGU9XCJhdWRpby9tcDNcIiAvPlxuICAgICAgICAgICAgPC9hdWRpbz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNwaG90b0VsZW1lbnRcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJlY29yZFR5cGUgPT09ICdwaG90bydcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbGUtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGNhcHR1cmU9XCJlbnZpcm9ubWVudFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRha2VQaG90bygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNSZWNvcmRpbmcgfHwgdmFsdWVVcmxcIiBjbGFzcz1cIm1lZGlhLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3sgIWlzUmVjb3JkaW5nID8gJycgOiAoJ1JlY29yZGluZycgfCBiYmJUcmFuc2xhdGUpIH19IDxzdHJvbmc+e3sgcmVjb3JkZWRUaW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+e3sgZmlsZU5hbWUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1cGxvYWRpbmdTdGF0ZSQgfCBhc3luYyBhcyB1cGxvYWRpbmdTdGF0ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCIgKm5nSWY9XCJ1cGxvYWRpbmdTdGF0ZS5zdGF0ZSA9PT0gJ1VwbG9hZGluZydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcHJvZ3Jlc3MtaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZT1cImluZm9ybWF0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZU5vd109XCJ1cGxvYWRpbmdTdGF0ZT8ucHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1wcm9ncmVzcy1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4td3JhcHBlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLXJlY29yZFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdmFsdWUgJiYgIXZhbHVlVXJsXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaXNSZWNvcmRpbmcgPyAnc3RvcCcgOiAncmVjb3JkJ1wiXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJpc1JlY29yZGluZyA/ICdhdHRlbnRpb24nIDogJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlUmVjb3JkKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF2YWx1ZSAmJiB2YWx1ZVVybFwiIGNsYXNzPVwiYnRuLXRvb2xiYXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbZ2x5cGhdPVwiJ2RlbGV0ZSdcIiBmZFR5cGU9XCJuZWdhdGl2ZVwiIChjbGljayk9XCJvbkNsZWFyUmVjb3JkKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbbGFiZWxdPVwiJ1VwbG9hZCcgfCBiYmJUcmFuc2xhdGVcIiBbZ2x5cGhdPVwiJ3VwbG9hZCdcIiAoY2xpY2spPVwib25VcGxvYWQoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsdWVcIiBjbGFzcz1cImJ0bi10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInZhbHVlXCIgZmQtYnV0dG9uIFtnbHlwaF09XCInZGVsZXRlJ1wiIGZkVHlwZT1cIm5lZ2F0aXZlXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidmFsdWVcIiBmZC1idXR0b24gW2dseXBoXT1cIidkb3dubG9hZCdcIiBmZFR5cGU9XCJzdGFuZGFyZFwiIChjbGljayk9XCJvbkRvd25sb2FkKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWNhcmQtY29udGVudD5cbjwvZmQtY2FyZD5cbiJdfQ==
|
package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs
CHANGED
|
@@ -13,11 +13,17 @@ export class ServiceDeskViewOfServicesComponent extends ReportViewBaseComponent
|
|
|
13
13
|
this.fieldTitle = this.viewSetting.FieldTitle;
|
|
14
14
|
this.fieldDynamicCommand = this.viewSetting.FieldDynamicCommand;
|
|
15
15
|
}
|
|
16
|
+
onRowClick2(e, dynamicCommand) {
|
|
17
|
+
if (dynamicCommand) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
super.onRowClick(e);
|
|
21
|
+
}
|
|
16
22
|
}
|
|
17
23
|
ServiceDeskViewOfServicesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskViewOfServicesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
ServiceDeskViewOfServicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskViewOfServicesComponent, selector: "bdc-service-desk-view-of-services", usesInheritance: true, ngImport: i0, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <
|
|
24
|
+
ServiceDeskViewOfServicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskViewOfServicesComponent, selector: "bdc-service-desk-view-of-services", usesInheritance: true, ngImport: i0, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicCommand;\n context: {\n $implicit: mo,\n index: i,\n dynCommand: fieldDynamicCommand | rval: mo:allColumns,\n title: fieldTitle | rval: mo:allColumns | bbbTranslate\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n</div>\n<ng-template #dynamicCommand let-mo let-index=\"index\" let-dynCommand=\"dynCommand\" let-title=\"title\">\n <a [dynCommand]=\"dynCommand\" [mo]=\"mo\" [enableCommand]=\"dynCommand\" (click)=\"onRowClick2({ mo, index },dynCommand)\">\n <span class=\"item-icon\">\n <fd-icon glyph=\"product\"></fd-icon>\n </span>\n <span class=\"item-content\"> {{ title }}</span>\n <span class=\"item-icon-arrow\">\n <fd-icon [glyph]=\"fieldIcon || 'add'\"></fd-icon>\n </span>\n </a>\n</ng-template>\n", styles: [":host .b-b{padding-right:5px;padding-top:5px}.item{position:relative}.item a{background:#0078d7;cursor:pointer;display:flex;padding:10px 5px;flex-direction:column;cursor:pointer!important}.item a:hover{background:#67b4f3}fd-icon{font-size:1.25rem;color:#fff}.item .item-content{color:#fff;margin-left:35px;margin-right:25px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.item .item-icon{position:absolute;right:5px;top:5px}.item .item-icon-arrow{position:absolute;left:16px;top:9px}.item .item-icon-arrow fd-icon{font-size:1rem;color:#fff}.exe_cell{margin-top:10px;padding:0 5px}.service-list{margin-top:20px}@media only screen and (max-width: 1200px){.services{margin:0 5rem}}.exe_cell:nth-child(1),.exe_cell:nth-child(2),.exe_cell:nth-child(3),.exe_cell:nth-child(4){margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i4.InlineHelpDirective, selector: "[fd-inline-help], [fd-inline-help-template]", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help", "fd-inline-help-template"] }, { kind: "component", type: i5.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i5.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskViewOfServicesComponent, decorators: [{
|
|
20
26
|
type: Component,
|
|
21
|
-
args: [{ selector: 'bdc-service-desk-view-of-services', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <
|
|
27
|
+
args: [{ selector: 'bdc-service-desk-view-of-services', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicCommand;\n context: {\n $implicit: mo,\n index: i,\n dynCommand: fieldDynamicCommand | rval: mo:allColumns,\n title: fieldTitle | rval: mo:allColumns | bbbTranslate\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n</div>\n<ng-template #dynamicCommand let-mo let-index=\"index\" let-dynCommand=\"dynCommand\" let-title=\"title\">\n <a [dynCommand]=\"dynCommand\" [mo]=\"mo\" [enableCommand]=\"dynCommand\" (click)=\"onRowClick2({ mo, index },dynCommand)\">\n <span class=\"item-icon\">\n <fd-icon glyph=\"product\"></fd-icon>\n </span>\n <span class=\"item-content\"> {{ title }}</span>\n <span class=\"item-icon-arrow\">\n <fd-icon [glyph]=\"fieldIcon || 'add'\"></fd-icon>\n </span>\n </a>\n</ng-template>\n", styles: [":host .b-b{padding-right:5px;padding-top:5px}.item{position:relative}.item a{background:#0078d7;cursor:pointer;display:flex;padding:10px 5px;flex-direction:column;cursor:pointer!important}.item a:hover{background:#67b4f3}fd-icon{font-size:1.25rem;color:#fff}.item .item-content{color:#fff;margin-left:35px;margin-right:25px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.item .item-icon{position:absolute;right:5px;top:5px}.item .item-icon-arrow{position:absolute;left:16px;top:9px}.item .item-icon-arrow fd-icon{font-size:1rem;color:#fff}.exe_cell{margin-top:10px;padding:0 5px}.service-list{margin-top:20px}@media only screen and (max-width: 1200px){.services{margin:0 5rem}}.exe_cell:nth-child(1),.exe_cell:nth-child(2),.exe_cell:nth-child(3),.exe_cell:nth-child(4){margin-top:10px}\n"] }]
|
|
22
28
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFTcEYsTUFBTSxPQUFPLGtDQUNULFNBQVEsdUJBQXlEO0lBTWpFLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBNkMsRUFBRSxjQUFtQjtRQUMxRSxJQUFJLGNBQWMsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OytIQWxCUSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxnR0NWL0MsNmpEQXNDQTsyRkQ1QmEsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNJLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzU2V0dGluZyB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLXNlcnZpY2UtZGVzay12aWV3LW9mLXNlcnZpY2VzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlcnZpY2UtZGVzay12aWV3LW9mLXNlcnZpY2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZURlc2tWaWV3T2ZTZXJ2aWNlc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8U2VydmljZURlc2tWaWV3T2ZTZXJ2aWNlc1NldHRpbmc+XG4gICAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgICBmaWVsZEljb246IHN0cmluZztcbiAgICBmaWVsZFRpdGxlOiBzdHJpbmc7XG4gICAgZmllbGREeW5hbWljQ29tbWFuZDogc3RyaW5nO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmZpZWxkSWNvbiA9IHRoaXMudmlld1NldHRpbmcuRmllbGRJY29uO1xuICAgICAgICB0aGlzLmZpZWxkVGl0bGUgPSB0aGlzLnZpZXdTZXR0aW5nLkZpZWxkVGl0bGU7XG4gICAgICAgIHRoaXMuZmllbGREeW5hbWljQ29tbWFuZCA9IHRoaXMudmlld1NldHRpbmcuRmllbGREeW5hbWljQ29tbWFuZDtcbiAgICB9XG4gICAgb25Sb3dDbGljazIoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9LCBkeW5hbWljQ29tbWFuZDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChkeW5hbWljQ29tbWFuZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm9uUm93Q2xpY2soZSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlcnZpY2VzXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtbGlzdFwiPlxuICAgICAgICA8ZmQtbGF5b3V0LWdyaWQ+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIxMlwiXG4gICAgICAgICAgICAgICAgW2NvbE1kXT1cIjNcIlxuICAgICAgICAgICAgICAgIFtjb2xMZ109XCIzXCJcbiAgICAgICAgICAgICAgICBbY29sWGxdPVwiM1wiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vIG9mIG1vRGF0YUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgW2ZkLWlubGluZS1oZWxwXT1cImZpZWxkVGl0bGUgfCBydmFsOiBtbzphbGxDb2x1bW5zIHwgYmJiVHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0NvbW1hbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHluQ29tbWFuZDogZmllbGREeW5hbWljQ29tbWFuZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmaWVsZFRpdGxlIHwgcnZhbDogbW86YWxsQ29sdW1ucyB8IGJiYlRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2R5bmFtaWNDb21tYW5kIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1keW5Db21tYW5kPVwiZHluQ29tbWFuZFwiIGxldC10aXRsZT1cInRpdGxlXCI+XG4gICAgPGEgW2R5bkNvbW1hbmRdPVwiZHluQ29tbWFuZFwiIFttb109XCJtb1wiIFtlbmFibGVDb21tYW5kXT1cImR5bkNvbW1hbmRcIiAoY2xpY2spPVwib25Sb3dDbGljazIoeyBtbywgaW5kZXggfSxkeW5Db21tYW5kKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0taWNvblwiPlxuICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJwcm9kdWN0XCI+PC9mZC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS1jb250ZW50XCI+IHt7IHRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0taWNvbi1hcnJvd1wiPlxuICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cImZpZWxkSWNvbiB8fCAnYWRkJ1wiPjwvZmQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1488,12 +1488,18 @@ class ServiceDeskViewOfServicesComponent extends ReportViewBaseComponent {
|
|
|
1488
1488
|
this.fieldTitle = this.viewSetting.FieldTitle;
|
|
1489
1489
|
this.fieldDynamicCommand = this.viewSetting.FieldDynamicCommand;
|
|
1490
1490
|
}
|
|
1491
|
+
onRowClick2(e, dynamicCommand) {
|
|
1492
|
+
if (dynamicCommand) {
|
|
1493
|
+
return;
|
|
1494
|
+
}
|
|
1495
|
+
super.onRowClick(e);
|
|
1496
|
+
}
|
|
1491
1497
|
}
|
|
1492
1498
|
ServiceDeskViewOfServicesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskViewOfServicesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1493
|
-
ServiceDeskViewOfServicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskViewOfServicesComponent, selector: "bdc-service-desk-view-of-services", usesInheritance: true, ngImport: i0, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <
|
|
1499
|
+
ServiceDeskViewOfServicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskViewOfServicesComponent, selector: "bdc-service-desk-view-of-services", usesInheritance: true, ngImport: i0, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicCommand;\n context: {\n $implicit: mo,\n index: i,\n dynCommand: fieldDynamicCommand | rval: mo:allColumns,\n title: fieldTitle | rval: mo:allColumns | bbbTranslate\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n</div>\n<ng-template #dynamicCommand let-mo let-index=\"index\" let-dynCommand=\"dynCommand\" let-title=\"title\">\n <a [dynCommand]=\"dynCommand\" [mo]=\"mo\" [enableCommand]=\"dynCommand\" (click)=\"onRowClick2({ mo, index },dynCommand)\">\n <span class=\"item-icon\">\n <fd-icon glyph=\"product\"></fd-icon>\n </span>\n <span class=\"item-content\"> {{ title }}</span>\n <span class=\"item-icon-arrow\">\n <fd-icon [glyph]=\"fieldIcon || 'add'\"></fd-icon>\n </span>\n </a>\n</ng-template>\n", styles: [":host .b-b{padding-right:5px;padding-top:5px}.item{position:relative}.item a{background:#0078d7;cursor:pointer;display:flex;padding:10px 5px;flex-direction:column;cursor:pointer!important}.item a:hover{background:#67b4f3}fd-icon{font-size:1.25rem;color:#fff}.item .item-content{color:#fff;margin-left:35px;margin-right:25px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.item .item-icon{position:absolute;right:5px;top:5px}.item .item-icon-arrow{position:absolute;left:16px;top:9px}.item .item-icon-arrow fd-icon{font-size:1rem;color:#fff}.exe_cell{margin-top:10px;padding:0 5px}.service-list{margin-top:20px}@media only screen and (max-width: 1200px){.services{margin:0 5rem}}.exe_cell:nth-child(1),.exe_cell:nth-child(2),.exe_cell:nth-child(3),.exe_cell:nth-child(4){margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "component", type: i3$6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i4$6.InlineHelpDirective, selector: "[fd-inline-help], [fd-inline-help-template]", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help", "fd-inline-help-template"] }, { kind: "component", type: i5$4.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i5$4.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "pipe", type: i1$2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i1$2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1494
1500
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskViewOfServicesComponent, decorators: [{
|
|
1495
1501
|
type: Component,
|
|
1496
|
-
args: [{ selector: 'bdc-service-desk-view-of-services', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <
|
|
1502
|
+
args: [{ selector: 'bdc-service-desk-view-of-services', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"services\">\n <div class=\"service-list\">\n <fd-layout-grid>\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"3\"\n [colLg]=\"3\"\n [colXl]=\"3\"\n *ngFor=\"let mo of moDataList; let i = index\"\n >\n <div class=\"item\" [fd-inline-help]=\"fieldTitle | rval: mo:allColumns | bbbTranslate\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicCommand;\n context: {\n $implicit: mo,\n index: i,\n dynCommand: fieldDynamicCommand | rval: mo:allColumns,\n title: fieldTitle | rval: mo:allColumns | bbbTranslate\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n</div>\n<ng-template #dynamicCommand let-mo let-index=\"index\" let-dynCommand=\"dynCommand\" let-title=\"title\">\n <a [dynCommand]=\"dynCommand\" [mo]=\"mo\" [enableCommand]=\"dynCommand\" (click)=\"onRowClick2({ mo, index },dynCommand)\">\n <span class=\"item-icon\">\n <fd-icon glyph=\"product\"></fd-icon>\n </span>\n <span class=\"item-content\"> {{ title }}</span>\n <span class=\"item-icon-arrow\">\n <fd-icon [glyph]=\"fieldIcon || 'add'\"></fd-icon>\n </span>\n </a>\n</ng-template>\n", styles: [":host .b-b{padding-right:5px;padding-top:5px}.item{position:relative}.item a{background:#0078d7;cursor:pointer;display:flex;padding:10px 5px;flex-direction:column;cursor:pointer!important}.item a:hover{background:#67b4f3}fd-icon{font-size:1.25rem;color:#fff}.item .item-content{color:#fff;margin-left:35px;margin-right:25px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.item .item-icon{position:absolute;right:5px;top:5px}.item .item-icon-arrow{position:absolute;left:16px;top:9px}.item .item-icon-arrow fd-icon{font-size:1rem;color:#fff}.exe_cell{margin-top:10px;padding:0 5px}.service-list{margin-top:20px}@media only screen and (max-width: 1200px){.services{margin:0 5rem}}.exe_cell:nth-child(1),.exe_cell:nth-child(2),.exe_cell:nth-child(3),.exe_cell:nth-child(4){margin-top:10px}\n"] }]
|
|
1497
1503
|
}] });
|
|
1498
1504
|
|
|
1499
1505
|
class ServiceDeskCardContentMojavezhayAkhzShodeComponent extends BaseComponent {
|
|
@@ -2488,10 +2494,10 @@ class MediaFileUploaderComponent extends UiPdfViewerComponent {
|
|
|
2488
2494
|
}
|
|
2489
2495
|
}
|
|
2490
2496
|
MediaFileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2491
|
-
MediaFileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MediaFileUploaderComponent, selector: "bdc-media-file-uploader", providers: [AudioRecordingService, VideoRecordingService, UploadService], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true }, { propertyName: "photoElement", first: true, predicate: ["photoElement"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\
|
|
2497
|
+
MediaFileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MediaFileUploaderComponent, selector: "bdc-media-file-uploader", providers: [AudioRecordingService, VideoRecordingService, UploadService], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true }, { propertyName: "photoElement", first: true, predicate: ["photoElement"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\n <fd-card-content class=\"file-content\">\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\n <div class=\"icon\">\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </div>\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </video>\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\n </audio>\n <input\n #photoElement\n *ngIf=\"recordType === 'photo'\"\n type=\"file\"\n accept=\"image/*\"\n id=\"file-input\"\n capture=\"environment\"\n (change)=\"onTakePhoto()\"\n />\n </div>\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\n <div>\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\n </div>\n <div>{{ fileName }}</div>\n </div>\n <ng-container *ngIf=\"uploadingState$ | async as uploadingState\">\n <div class=\"progress\" *ngIf=\"uploadingState.state === 'Uploading'\">\n <div>\n <fd-progress-indicator\n state=\"informative\"\n [valueNow]=\"uploadingState?.progress\"\n ></fd-progress-indicator>\n </div>\n </div>\n </ng-container>\n <div class=\"btn-wrapper\">\n <button\n class=\"btn-record\"\n *ngIf=\"!value && !valueUrl\"\n fd-button\n [glyph]=\"isRecording ? 'stop' : 'record'\"\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\n (click)=\"onToggleRecord()\"\n ></button>\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\n </div>\n <div *ngIf=\"value\" class=\"btn-toolbar\">\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\n </div>\n </div>\n </fd-card-content>\n</fd-card>\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5$3.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i5$3.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i4$8.NestedListIconDirective, selector: "[fdNestedDirectivesIcon], [fd-nested-list-icon]", inputs: ["class", "glyph", "role"] }, { kind: "component", type: i5$5.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2492
2498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, decorators: [{
|
|
2493
2499
|
type: Component,
|
|
2494
|
-
args: [{ selector: 'bdc-media-file-uploader', changeDetection: ChangeDetectionStrategy.OnPush, providers: [AudioRecordingService, VideoRecordingService, UploadService], template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\
|
|
2500
|
+
args: [{ selector: 'bdc-media-file-uploader', changeDetection: ChangeDetectionStrategy.OnPush, providers: [AudioRecordingService, VideoRecordingService, UploadService], template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\n <fd-card-content class=\"file-content\">\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\n <div class=\"icon\">\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </div>\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\n <i\n style=\"left: 45%; position: absolute\"\n fd-nested-list-icon\n [glyph]=\"glyph\"\n *ngIf=\"!value && !valueUrl && !isRecording\"\n ></i>\n </video>\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\n </audio>\n <input\n #photoElement\n *ngIf=\"recordType === 'photo'\"\n type=\"file\"\n accept=\"image/*\"\n id=\"file-input\"\n capture=\"environment\"\n (change)=\"onTakePhoto()\"\n />\n </div>\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\n <div>\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\n </div>\n <div>{{ fileName }}</div>\n </div>\n <ng-container *ngIf=\"uploadingState$ | async as uploadingState\">\n <div class=\"progress\" *ngIf=\"uploadingState.state === 'Uploading'\">\n <div>\n <fd-progress-indicator\n state=\"informative\"\n [valueNow]=\"uploadingState?.progress\"\n ></fd-progress-indicator>\n </div>\n </div>\n </ng-container>\n <div class=\"btn-wrapper\">\n <button\n class=\"btn-record\"\n *ngIf=\"!value && !valueUrl\"\n fd-button\n [glyph]=\"isRecording ? 'stop' : 'record'\"\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\n (click)=\"onToggleRecord()\"\n ></button>\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\n </div>\n <div *ngIf=\"value\" class=\"btn-toolbar\">\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\n </div>\n </div>\n </fd-card-content>\n</fd-card>\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"] }]
|
|
2495
2501
|
}], propDecorators: { videoElement: [{
|
|
2496
2502
|
type: ViewChild,
|
|
2497
2503
|
args: ['videoElement']
|