barsa-develop-components 0.0.2 → 1.0.248
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/accept-reject/accept-reject.component.mjs +69 -0
- package/esm2020/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +1 -1
- package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +1 -1
- package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +1 -1
- package/esm2020/lib/barsa-develop-components.module.mjs +36 -4
- package/esm2020/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +104 -0
- package/esm2020/lib/barsa-documents/barsa-documents.component.mjs +173 -0
- package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +3 -3
- package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +3 -3
- package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +3 -3
- package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +1 -1
- package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +3 -3
- package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +3 -3
- package/esm2020/lib/footer/footer.component.mjs +41 -0
- package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +3 -3
- package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +14 -5
- package/esm2020/lib/g4b-details/g4b-details.component.mjs +3 -3
- package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +3 -3
- package/esm2020/lib/login-form/login-form.component.mjs +17 -12
- package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +3 -3
- package/esm2020/lib/master-detail-card-form/master-detail-card-form.component.mjs +17 -0
- package/esm2020/lib/media-file-uploader/media-file-uploader.component.mjs +238 -0
- package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +12 -7
- package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +1 -1
- package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +3 -3
- package/esm2020/lib/models/document-item.mjs +2 -0
- package/esm2020/lib/models/documents-setting.mjs +2 -0
- package/esm2020/lib/models/index.mjs +7 -0
- package/esm2020/lib/models/micro-process-flow-view-setting.mjs +2 -0
- package/esm2020/lib/models/service-desk-view-of-services-setting.mjs +2 -0
- package/esm2020/lib/models/tab-process-view-setting.mjs +2 -0
- package/esm2020/lib/pipes/datasource-to-flow-item.mjs +1 -1
- package/esm2020/lib/pipes/index.mjs +1 -1
- package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +1 -1
- package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +1 -1
- package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +1 -1
- package/esm2020/lib/report-button-view/report-button-view.component.mjs +38 -0
- package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +3 -3
- package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +3 -3
- package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +3 -3
- package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +1 -1
- package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +7 -6
- package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +3 -3
- package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +3 -3
- package/esm2020/lib/setting-form/setting-form.component.mjs +3 -3
- package/esm2020/lib/subform-in-row-report/subform-in-row-report.component.mjs +24 -0
- package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +1 -1
- package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +4 -3
- package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +6 -6
- package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +1 -1
- package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +3 -3
- package/esm2020/lib/ui-person/ui-person.component.mjs +1 -1
- package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +3 -3
- package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +16 -5
- package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +1 -1
- package/esm2020/public-api.mjs +9 -1
- package/fesm2015/barsa-develop-components.mjs +812 -116
- package/fesm2015/barsa-develop-components.mjs.map +1 -1
- package/fesm2020/barsa-develop-components.mjs +803 -114
- package/fesm2020/barsa-develop-components.mjs.map +1 -1
- package/lib/accept-reject/accept-reject.component.d.ts +28 -0
- package/lib/barsa-develop-components.module.d.ts +30 -18
- package/lib/barsa-document-list-item/barsa-document-list-item.component.d.ts +39 -0
- package/lib/barsa-documents/barsa-documents.component.d.ts +47 -0
- package/lib/footer/footer.component.d.ts +15 -0
- package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +1 -0
- package/lib/login-form/login-form.component.d.ts +3 -1
- package/lib/master-detail-card-form/master-detail-card-form.component.d.ts +8 -0
- package/lib/media-file-uploader/media-file-uploader.component.d.ts +52 -0
- package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +7 -1
- package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +1 -1
- package/lib/models/document-item.d.ts +19 -0
- package/lib/models/documents-setting.d.ts +11 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/micro-process-flow-view-setting.d.ts +8 -0
- package/lib/models/service-desk-view-of-services-setting.d.ts +6 -0
- package/lib/models/tab-process-view-setting.d.ts +7 -0
- package/lib/report-button-view/report-button-view.component.d.ts +12 -0
- package/lib/service-desk-header/service-desk-header.component.d.ts +2 -1
- package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +1 -1
- package/lib/subform-in-row-report/subform-in-row-report.component.d.ts +10 -0
- package/lib/tab-process-view/tab-process-view.component.d.ts +1 -1
- package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +3 -0
- package/package.json +4 -4
- package/public-api.d.ts +8 -0
- package/esm2020/lib/models/models.mjs +0 -2
- package/lib/models/models.d.ts +0 -19
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { AudioMimeType, BaseComponent, ImageMimeType, PreventDefaulEvent, VideoMimeType, AllFilesMimeType, isImage, getIcon } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "barsa-sap-ui";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/core/action-sheet";
|
|
8
|
+
import * as i5 from "@fundamental-ngx/core/avatar";
|
|
9
|
+
import * as i6 from "@fundamental-ngx/core/button";
|
|
10
|
+
import * as i7 from "@fundamental-ngx/core/file-uploader";
|
|
11
|
+
import * as i8 from "@fundamental-ngx/core/form";
|
|
12
|
+
import * as i9 from "@fundamental-ngx/core/inline-help";
|
|
13
|
+
import * as i10 from "@fundamental-ngx/core/object-status";
|
|
14
|
+
import * as i11 from "@fundamental-ngx/core/table";
|
|
15
|
+
import * as i12 from "@fundamental-ngx/core/toolbar";
|
|
16
|
+
export class BarsaDocumentListItemComponent extends BaseComponent {
|
|
17
|
+
constructor(_cdr, _picFieldSrc) {
|
|
18
|
+
super();
|
|
19
|
+
this._cdr = _cdr;
|
|
20
|
+
this._picFieldSrc = _picFieldSrc;
|
|
21
|
+
this.statusChanged = new EventEmitter();
|
|
22
|
+
this.rejectTextChange = new EventEmitter();
|
|
23
|
+
this.fileSelectionChange = new EventEmitter();
|
|
24
|
+
this.removeFile = new EventEmitter();
|
|
25
|
+
this.fullscreen = new EventEmitter();
|
|
26
|
+
this.download = new EventEmitter();
|
|
27
|
+
this.downloadAll = new EventEmitter();
|
|
28
|
+
this.hasFiles = false;
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
super.ngOnInit();
|
|
32
|
+
const documentItem = this.documentItem;
|
|
33
|
+
documentItem.$ValidExtensions = `
|
|
34
|
+
${documentItem.SupportImage ? ImageMimeType : ''},
|
|
35
|
+
${documentItem.SupportAudio ? AudioMimeType : ''},
|
|
36
|
+
${documentItem.SupportVideo ? VideoMimeType : ''},
|
|
37
|
+
${documentItem.SupportFile ? AllFilesMimeType : ''}
|
|
38
|
+
`;
|
|
39
|
+
}
|
|
40
|
+
ngOnChanges(changes) {
|
|
41
|
+
super.ngOnChanges(changes);
|
|
42
|
+
const { files } = changes;
|
|
43
|
+
files && Array.isArray(files.currentValue) && this._setFirstImage(files.currentValue);
|
|
44
|
+
this._detectChanges();
|
|
45
|
+
}
|
|
46
|
+
onReject(e) {
|
|
47
|
+
this.statusChanged.emit({ value: e, rejectedText: e === 2 ? '' : this.rejectedReason });
|
|
48
|
+
}
|
|
49
|
+
onRejectedTextChange(e) {
|
|
50
|
+
this.rejectTextChange.emit(e.target.value);
|
|
51
|
+
}
|
|
52
|
+
onPreventClick(e) {
|
|
53
|
+
PreventDefaulEvent(e);
|
|
54
|
+
}
|
|
55
|
+
onFileSelection(files) {
|
|
56
|
+
this.fileSelectionChange.emit(files);
|
|
57
|
+
}
|
|
58
|
+
_setFirstImage(files) {
|
|
59
|
+
files.length &&
|
|
60
|
+
(this.firstImageUrl = isImage(files[0].Type)
|
|
61
|
+
? this._picFieldSrc.transform(files[0].Id, 'ID', null, '', 120, 120)
|
|
62
|
+
: getIcon(files[0].Type));
|
|
63
|
+
}
|
|
64
|
+
_detectChanges() {
|
|
65
|
+
this._cdr.detectChanges();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
BarsaDocumentListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
BarsaDocumentListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: { documentItem: "documentItem", deviceSize: "deviceSize", files: "files", accepted: "accepted", rejectedReason: "rejectedReason", readonly: "readonly", status: "status", uploadingState: "uploadingState" }, outputs: { statusChanged: "statusChanged", rejectTextChange: "rejectTextChange", fileSelectionChange: "fileSelectionChange", removeFile: "removeFile", fullscreen: "fullscreen", download: "download", downloadAll: "downloadAll" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\n <span fd-list-thumbnail>\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\n <fd-avatar\n *ngIf=\"documentItem.Avatar\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\n [clickable]=\"true\"\n ></fd-avatar\n ></span>\n \n <div fd-list-content>\n <div fd-list-title>\n <div style=\"display: flex; column-gap: 3px\">\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n <div\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\n >\n <span\n fd-object-status\n [status]=\"accepted ? 'positive' : 'negative'\"\n [label]=\"accepted ? acceptedText : rejectedText\"\n [clickable]=\"true\"\n [inverted]=\"true\"\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\n ></span>\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\n <fd-popover-control>\n <span\n fd-object-status\n status=\"negative\"\n glyph=\"question-mark\"\n glyphAriaLabel=\"Negative\"\n title=\"Rejected document\"\n ></span>\n </fd-popover-control>\n <fd-popover-body>\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\n {{ rejectedReason }}\n </fd-message-strip>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\n <div fd-list-byline-left>\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\n <span>\n {{ documentItem.Description }}\n </span>\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\n <ng-container *ngIf=\"hasFiles\">\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\n <ng-container *ngFor=\"let file of files\">\n <fd-token\n [readOnly]=\"readonly\"\n *ngIf=\"!file.IsDeleted\"\n (onCloseClick)=\"onRemoveFile(file)\"\n >{{ file.FileName }}</fd-token\n >\n </ng-container>\n </ng-container>\n <button\n fd-button\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n (click)=\"!readonly && uploader.open()\"\n ></button>\n <fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n ></fd-file-uploader>\n </div>\n </div>\n </div>\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\n <bdc-accept-reject\n [rejectedReason]=\"rejectedReason\"\n [positiveText]=\"acceptedText\"\n [negativeText]=\"rejectedText\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"readonly\"\n ></bdc-accept-reject>\n </div>\n </div>\n </div>\n</li> -->\n\n<tr fd-table-row>\n <td fd-table-cell>\n <fd-avatar\n *ngIf=\"documentItem.Avatar && !files.length; else fontIconTpl\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\n [clickable]=\"true\"\n [transparent]=\"true\"\n ></fd-avatar>\n <ng-template #fontIconTpl>\n <fd-avatar\n *ngIf=\"files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [image]=\"firstImageUrl\"\n [clickable]=\"true\"\n ></fd-avatar>\n <fd-avatar\n *ngIf=\"!files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [glyph]=\"documentItem.FontIcon\"\n [clickable]=\"true\"\n ></fd-avatar>\n </ng-template>\n </td>\n <td fd-table-cell style=\"min-width: 140px\">\n <p fd-table-text>\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n </p>\n <div>\n <span>\n {{ documentItem.Description }}\n </span>\n </div>\n </td>\n\n <td fd-table-cell>\n <ng-container>\n <!-- <ul fd-list>\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\n <span fd-list-title>\n {{ file.FileName }}\n </span>\n <span fd-list-secondary>\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\n </span>\n </li>\n </ul> -->\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\n <ng-container *ngFor=\"let file of files\">\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\n <bsu-file-viewer-popover\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n (remove)=\"removeFile.emit(file)\"\n ></bsu-file-viewer-popover>\n </ng-container>\n <!-- <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"add\"\n (click)=\"!readonly && uploader.open()\"\n ></button> -->\n </div>\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\n <fd-action-sheet >\n <fd-action-sheet-control>\n <button\n fd-button\n glyph=\"settings\"\n title=\"Open Action Sheet Mobile\"\n id=\"fd-action-sheet-mobile-control\"\n aria-haspopup=\"menu\"\n [label]=\"file.FileName ||''\"\n aria-controls=\"fd-action-sheet-mobile-body\"\n ></button>\n </fd-action-sheet-control>\n \n <fd-action-sheet-body\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\n ariaLabelledby=\"fd-action-sheet-mobile-control\"\n >\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n </p> -->\n </ng-container>\n </td>\n <td fd-table-cell>\n <div class=\"status\" style=\"position: relative\">\n <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n (click)=\"!readonly && uploader.open()\"\n >\n <bsu-mask\n *ngIf=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n [marginTop]=\"'3px'\"\n ></bsu-mask>\n </button>\n <button\n fd-button\n glyph=\"show\"\n fullscreenFiles\n [files]=\"files\"\n [title]=\"documentItem.Title\"\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n fullscreenFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n ></button>\n <button\n fd-button\n glyph=\"download\"\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n downloadFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n (click)=\"downloadAll.emit()\"\n ></button>\n </div>\n </td>\n <td fd-table-cell>\n <fd-action-sheet #actionSheet>\n <fd-action-sheet-control>\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\n </fd-action-sheet-control>\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n [label]=\"'Accept' | bbbTranslate\"\n glyph=\"accept\"\n (click)=\"actionSheet.close(); onReject(2)\"\n ></li>\n <li\n fd-action-sheet-item\n [label]=\"'Reject' | bbbTranslate\"\n glyph=\"cancel\"\n (click)=\"actionSheet.close(); onReject(3)\"\n ></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n\n <p fd-table-text maxWidth=\"400px\" *ngIf=\"status === 3\">\n <span *ngIf=\"readonly && rejectedReason\"> {{ rejectedReason | bbbTranslate }} </span>\n <input\n *ngIf=\"!readonly\"\n fd-form-control\n [value]=\"rejectedReason | bbbTranslate\"\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\n />\n </p>\n </td>\n</tr>\n\n<fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n></fd-file-uploader>\n<ng-template #statusTpl>\n <div class=\"status\">\n <button fd-button fdType=\"transparent\">\n <span\n *ngIf=\"status === 1\"\n fd-object-status\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 2\"\n fd-object-status\n glyph=\"message-success\"\n status=\"positive\"\n [label]=\"'Accepted' | bbbTranslate\"\n [label]=\"'Accepted' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 3\"\n fd-object-status\n glyph=\"cancel\"\n status=\"negative\"\n [label]=\"'Rejected' | bbbTranslate\"\n [aria-label]=\"'Rejected' | bbbTranslate\"\n ></span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i3.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["file", "deviceSize", "canDownload"], outputs: ["remove"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "component", type: i4.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i4.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i4.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i4.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: i5.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i8.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i8.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help], [fd-inline-help-template]", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help", "fd-inline-help-template"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'bdc-barsa-document-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\n <span fd-list-thumbnail>\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\n <fd-avatar\n *ngIf=\"documentItem.Avatar\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\n [clickable]=\"true\"\n ></fd-avatar\n ></span>\n \n <div fd-list-content>\n <div fd-list-title>\n <div style=\"display: flex; column-gap: 3px\">\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n <div\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\n >\n <span\n fd-object-status\n [status]=\"accepted ? 'positive' : 'negative'\"\n [label]=\"accepted ? acceptedText : rejectedText\"\n [clickable]=\"true\"\n [inverted]=\"true\"\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\n ></span>\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\n <fd-popover-control>\n <span\n fd-object-status\n status=\"negative\"\n glyph=\"question-mark\"\n glyphAriaLabel=\"Negative\"\n title=\"Rejected document\"\n ></span>\n </fd-popover-control>\n <fd-popover-body>\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\n {{ rejectedReason }}\n </fd-message-strip>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\n <div fd-list-byline-left>\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\n <span>\n {{ documentItem.Description }}\n </span>\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\n <ng-container *ngIf=\"hasFiles\">\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\n <ng-container *ngFor=\"let file of files\">\n <fd-token\n [readOnly]=\"readonly\"\n *ngIf=\"!file.IsDeleted\"\n (onCloseClick)=\"onRemoveFile(file)\"\n >{{ file.FileName }}</fd-token\n >\n </ng-container>\n </ng-container>\n <button\n fd-button\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n (click)=\"!readonly && uploader.open()\"\n ></button>\n <fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n ></fd-file-uploader>\n </div>\n </div>\n </div>\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\n <bdc-accept-reject\n [rejectedReason]=\"rejectedReason\"\n [positiveText]=\"acceptedText\"\n [negativeText]=\"rejectedText\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"readonly\"\n ></bdc-accept-reject>\n </div>\n </div>\n </div>\n</li> -->\n\n<tr fd-table-row>\n <td fd-table-cell>\n <fd-avatar\n *ngIf=\"documentItem.Avatar && !files.length; else fontIconTpl\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\n [clickable]=\"true\"\n [transparent]=\"true\"\n ></fd-avatar>\n <ng-template #fontIconTpl>\n <fd-avatar\n *ngIf=\"files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [image]=\"firstImageUrl\"\n [clickable]=\"true\"\n ></fd-avatar>\n <fd-avatar\n *ngIf=\"!files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [glyph]=\"documentItem.FontIcon\"\n [clickable]=\"true\"\n ></fd-avatar>\n </ng-template>\n </td>\n <td fd-table-cell style=\"min-width: 140px\">\n <p fd-table-text>\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n </p>\n <div>\n <span>\n {{ documentItem.Description }}\n </span>\n </div>\n </td>\n\n <td fd-table-cell>\n <ng-container>\n <!-- <ul fd-list>\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\n <span fd-list-title>\n {{ file.FileName }}\n </span>\n <span fd-list-secondary>\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\n </span>\n </li>\n </ul> -->\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\n <ng-container *ngFor=\"let file of files\">\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\n <bsu-file-viewer-popover\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n (remove)=\"removeFile.emit(file)\"\n ></bsu-file-viewer-popover>\n </ng-container>\n <!-- <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"add\"\n (click)=\"!readonly && uploader.open()\"\n ></button> -->\n </div>\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\n <fd-action-sheet >\n <fd-action-sheet-control>\n <button\n fd-button\n glyph=\"settings\"\n title=\"Open Action Sheet Mobile\"\n id=\"fd-action-sheet-mobile-control\"\n aria-haspopup=\"menu\"\n [label]=\"file.FileName ||''\"\n aria-controls=\"fd-action-sheet-mobile-body\"\n ></button>\n </fd-action-sheet-control>\n \n <fd-action-sheet-body\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\n ariaLabelledby=\"fd-action-sheet-mobile-control\"\n >\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n </p> -->\n </ng-container>\n </td>\n <td fd-table-cell>\n <div class=\"status\" style=\"position: relative\">\n <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n (click)=\"!readonly && uploader.open()\"\n >\n <bsu-mask\n *ngIf=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n [marginTop]=\"'3px'\"\n ></bsu-mask>\n </button>\n <button\n fd-button\n glyph=\"show\"\n fullscreenFiles\n [files]=\"files\"\n [title]=\"documentItem.Title\"\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n fullscreenFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n ></button>\n <button\n fd-button\n glyph=\"download\"\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n downloadFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n (click)=\"downloadAll.emit()\"\n ></button>\n </div>\n </td>\n <td fd-table-cell>\n <fd-action-sheet #actionSheet>\n <fd-action-sheet-control>\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\n </fd-action-sheet-control>\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n [label]=\"'Accept' | bbbTranslate\"\n glyph=\"accept\"\n (click)=\"actionSheet.close(); onReject(2)\"\n ></li>\n <li\n fd-action-sheet-item\n [label]=\"'Reject' | bbbTranslate\"\n glyph=\"cancel\"\n (click)=\"actionSheet.close(); onReject(3)\"\n ></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n\n <p fd-table-text maxWidth=\"400px\" *ngIf=\"status === 3\">\n <span *ngIf=\"readonly && rejectedReason\"> {{ rejectedReason | bbbTranslate }} </span>\n <input\n *ngIf=\"!readonly\"\n fd-form-control\n [value]=\"rejectedReason | bbbTranslate\"\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\n />\n </p>\n </td>\n</tr>\n\n<fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n></fd-file-uploader>\n<ng-template #statusTpl>\n <div class=\"status\">\n <button fd-button fdType=\"transparent\">\n <span\n *ngIf=\"status === 1\"\n fd-object-status\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 2\"\n fd-object-status\n glyph=\"message-success\"\n status=\"positive\"\n [label]=\"'Accepted' | bbbTranslate\"\n [label]=\"'Accepted' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 3\"\n fd-object-status\n glyph=\"cancel\"\n status=\"negative\"\n [label]=\"'Rejected' | bbbTranslate\"\n [aria-label]=\"'Rejected' | bbbTranslate\"\n ></span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"] }]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PictureFieldSourcePipe }]; }, propDecorators: { documentItem: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], deviceSize: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], files: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], accepted: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], rejectedReason: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], readonly: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], status: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], uploadingState: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], statusChanged: [{
|
|
90
|
+
type: Output
|
|
91
|
+
}], rejectTextChange: [{
|
|
92
|
+
type: Output
|
|
93
|
+
}], fileSelectionChange: [{
|
|
94
|
+
type: Output
|
|
95
|
+
}], removeFile: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}], fullscreen: [{
|
|
98
|
+
type: Output
|
|
99
|
+
}], download: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], downloadAll: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}] } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDM0QsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ2xELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqRCxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBSWpCLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsWUFBWSxDQUFDLGdCQUFnQixHQUFHO1VBQzlCLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUM5QyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7VUFDOUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1VBQzlDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ2pELENBQUM7SUFDTixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxQixLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBUztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ1osa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELGVBQWUsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUEyQjtRQUNoRCxLQUFLLENBQUMsTUFBTTtZQUNSLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztnQkFDcEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ1MsY0FBYztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7OzJIQTdEUSw4QkFBOEI7K0dBQTlCLDhCQUE4QiwyaUJDaEMzQyx3bmNBNlRBOzJGRDdSYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNOzZJQUd0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIEF1ZGlvTWltZVR5cGUsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXG4gICAgSW1hZ2VNaW1lVHlwZSxcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXG4gICAgVmlkZW9NaW1lVHlwZSxcbiAgICBBbGxGaWxlc01pbWVUeXBlLFxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgaXNJbWFnZSxcbiAgICBnZXRJY29uLFxuICAgIElVcGxvYWRpbmdTdGF0ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xuXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcbiAgICBASW5wdXQoKSBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByZWplY3RlZFJlYXNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0YXR1czogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVwbG9hZGluZ1N0YXRlOiBJVXBsb2FkaW5nU3RhdGU7XG5cbiAgICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyOyByZWplY3RlZFRleHQ6IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSByZWplY3RUZXh0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgICBAT3V0cHV0KCkgcmVtb3ZlRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBmdWxsc2NyZWVuID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsIHwgRmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBkb3dubG9hZEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XG4gICAgZmlyc3RJbWFnZVVybDogYW55O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3BpY0ZpZWxkU3JjOiBQaWN0dXJlRmllbGRTb3VyY2VQaXBlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBkb2N1bWVudEl0ZW0gPSB0aGlzLmRvY3VtZW50SXRlbTtcbiAgICAgICAgZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnMgPSBgICAgICAgICAgICAgXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRBdWRpbyA/IEF1ZGlvTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRWaWRlbyA/IFZpZGVvTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxuICAgICAgICBgO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGZpbGVzIH0gPSBjaGFuZ2VzO1xuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQuZW1pdCh7IHZhbHVlOiBlLCByZWplY3RlZFRleHQ6IGUgPT09IDIgPyAnJyA6IHRoaXMucmVqZWN0ZWRSZWFzb24gfSk7XG4gICAgfVxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWplY3RUZXh0Q2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XG4gICAgICAgIFByZXZlbnREZWZhdWxFdmVudChlKTtcbiAgICB9XG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlU2VsZWN0aW9uQ2hhbmdlLmVtaXQoZmlsZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2V0Rmlyc3RJbWFnZShmaWxlczogRmlsZUF0dGFjaG1lbnRJbmZvW10pOiB2b2lkIHtcbiAgICAgICAgZmlsZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxuICAgICAgICAgICAgICAgID8gdGhpcy5fcGljRmllbGRTcmMudHJhbnNmb3JtKGZpbGVzWzBdLklkLCAnSUQnLCBudWxsLCAnJywgMTIwLCAxMjApXG4gICAgICAgICAgICAgICAgOiBnZXRJY29uKGZpbGVzWzBdLlR5cGUpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjwhLS0gPGxpIGZkLWxpc3QtaXRlbSBzdHlsZT1cInBhZGRpbmc6IDAuNXJlbSAxcmVtXCI+XG4gICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWw+XG4gICAgICAgIDxmZC1pY29uICpuZ0lmPVwiZG9jdW1lbnRJdGVtLkZvbnRJY29uXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyXG4gICAgPjwvc3Bhbj5cbiAgICBcbiAgICA8ZGl2IGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDNweFwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1vYmplY3Qtc3RhdHVzIHN0YXR1cz1cIm5lZ2F0aXZlXCIgKm5nSWY9XCJkb2N1bWVudEl0ZW0uSXNSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uJEFjY2VwdGVkID09PSBmYWxzZSB8fCBkb2N1bWVudEl0ZW0uJEFjY2VwdGVkID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJhY2NlcHRlZCA/ICdwb3NpdGl2ZScgOiAnbmVnYXRpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ludmVydGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCIgKm5nSWY9XCJyZWplY3RlZFJlYXNvbiAmJiAhYWNjZXB0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwicXVlc3Rpb24tbWFya1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoQXJpYUxhYmVsPVwiTmVnYXRpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByZWplY3RlZFJlYXNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUtbGVmdD5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcm93LWdhcDogNXB4OyBmbGV4LXdyYXA6IHdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkb2N1bWVudEl0ZW0uRGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBjb2x1bW4tZ2FwOiAzcHg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmlsZS5Jc0RlbGV0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VDbGljayk9XCJvblJlbW92ZUZpbGUoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFyZWFkb25seSAmJiB1cGxvYWRlci5vcGVuKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWZpbGUtdXBsb2FkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdXBsb2FkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3BpY3R1cmVzXycgKyBkb2N1bWVudEl0ZW0uSXRlbUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1maWxlLXVwbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cbiAgICAgICAgICAgICAgICA8YmRjLWFjY2VwdC1yZWplY3RcbiAgICAgICAgICAgICAgICAgICAgW3JlamVjdGVkUmVhc29uXT1cInJlamVjdGVkUmVhc29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aXZlVGV4dF09XCJhY2NlcHRlZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbbmVnYXRpdmVUZXh0XT1cInJlamVjdGVkVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgID48L2JkYy1hY2NlcHQtcmVqZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9saT4gLS0+XG5cbjx0ciBmZC10YWJsZS1yb3c+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICpuZ0lmPVwiZG9jdW1lbnRJdGVtLkF2YXRhciAmJiAhZmlsZXMubGVuZ3RoOyBlbHNlIGZvbnRJY29uVHBsXCJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6Jyc6NjQ6NjRcIlxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2ZvbnRJY29uVHBsPlxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtpbWFnZV09XCJmaXJzdEltYWdlVXJsXCJcbiAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZG9jdW1lbnRJdGVtLkZvbnRJY29uXCJcbiAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGQ+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJtaW4td2lkdGg6IDE0MHB4XCI+XG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XG4gICAgICAgICAgICA8c3Ryb25nXG4gICAgICAgICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIiAqbmdJZj1cImRvY3VtZW50SXRlbS5Jc1JlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPiooe3sgJ9in2KzYqNin2LHbjCcgfCBiYmJUcmFuc2xhdGUgfX0pXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IGxldCBpbmQgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5GaWxlTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3Qtc2Vjb25kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPiAtLT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgY29sdW1uLWdhcDogM3B4OyByb3ctZ2FwOiAzcHg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+PGZkLWljb24gZ2x5cGg9XCJhdHRhY2htZW50XCI+PC9mZC1pY29uPjxhIGZkLWxpbms+e3tmaWxlLkZpbGVOYW1lfX08L2E+PC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVGaWxlLmVtaXQoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhZGRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8cCAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiIGZkLXRhYmxlLXRleHQ+XG4gICAgICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAgPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJPcGVuIEFjdGlvbiBTaGVldCBNb2JpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpbGUuRmlsZU5hbWUgfHwnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25TaGVldEJvZHlJZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWxsZWRieT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIkRvd25sb2FkXCIgZ2x5cGg9XCJkb3dubG9hZFwiID48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQWNjZXB0XCIgZ2x5cGg9XCJhY2NlcHRcIiA+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEZWNpZGUgTGF0ZXJcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIkNhbmNlbFwiIFtuZWdhdGl2ZV09XCJ0cnVlXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYWN0aW9uLXNoZWV0LWJvZHk+XG4gICAgICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQ+XG4gICAgICAgICAgICA8L3A+IC0tPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIitkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidXBsb2FkaW5nU3RhdGU/LmtleSA9PT0gZG9jdW1lbnRJdGVtLlRpdGxlICYmIHVwbG9hZGluZ1N0YXRlPy51cGxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnN1LW1hc2tcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXJnaW5Ub3BdPVwiJzNweCdcIlxuICAgICAgICAgICAgICAgID48L2JzdS1tYXNrPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJzaG93XCJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJkb2N1bWVudEl0ZW0uVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cIifZhdi02KfZh9iv2Ycg2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZXNcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGwuZW1pdCgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XG4gICAgICAgICAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keT5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhY2NlcHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxuICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXG4gICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldC1ib2R5PlxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cblxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIiAqbmdJZj1cInN0YXR1cyA9PT0gM1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyZWFkb25seSAmJiByZWplY3RlZFJlYXNvblwiPiB7eyByZWplY3RlZFJlYXNvbiB8IGJiYlRyYW5zbGF0ZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlamVjdGVkUmVhc29uIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ9iv2YTYp9uM2YQg2LHYryDZhdiv2LHaqScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuXG48ZmQtZmlsZS11cGxvYWRlclxuICAgICN1cGxvYWRlclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXG4gICAgZmQtdG9vbGJhci1pdGVtXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcbiAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcbiAgICBbYWNjZXB0XT1cImRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zXCJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxuICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXG4gICAgKHNlbGVjdGVkRmlsZXNDaGFuZ2VkKT1cIm9uRmlsZVNlbGVjdGlvbigkZXZlbnQpXCJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XG48bmctdGVtcGxhdGUgI3N0YXR1c1RwbD5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCI+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzID09PSAxXCJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidb2b7bjNmI2LPYqiDZhdiv2KfYsdqpXScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidb2b7bjNmI2LPYqiDZhdiv2KfYsdqpXScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdGF0dXMgPT09IDJcIlxuICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICBnbHlwaD1cIm1lc3NhZ2Utc3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQWNjZXB0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXR1cyA9PT0gM1wiXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgIGdseXBoPVwiY2FuY2VsXCJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidSZWplY3RlZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidSZWplY3RlZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Optional } from '@angular/core';
|
|
2
|
+
import { FilesValidationHelper, LinearListHelper, ReportViewBaseComponent, UploadService } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/core/table";
|
|
8
|
+
import * as i5 from "../barsa-document-list-item/barsa-document-list-item.component";
|
|
9
|
+
export class BarsaDocumentsComponent extends ReportViewBaseComponent {
|
|
10
|
+
constructor(_el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService, _dialogService, _uploadService) {
|
|
11
|
+
super(_el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService, _uploadService);
|
|
12
|
+
this._el = _el;
|
|
13
|
+
this._cdr = _cdr;
|
|
14
|
+
this._renderer2 = _renderer2;
|
|
15
|
+
this._findColumnByDbName = _findColumnByDbName;
|
|
16
|
+
this._ulvMainService = _ulvMainService;
|
|
17
|
+
this._portalService = _portalService;
|
|
18
|
+
this._dialogService = _dialogService;
|
|
19
|
+
this._uploadService = _uploadService;
|
|
20
|
+
}
|
|
21
|
+
get documentItems() {
|
|
22
|
+
if (this.customFieldInfo) {
|
|
23
|
+
return this.customFieldInfo.DocumentItems.MoDataList;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return this.viewSetting.FilesSetting.DocumentItems.MoDataList;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
super.ngOnInit();
|
|
31
|
+
const { moDataList, viewSetting, allColumns } = this;
|
|
32
|
+
this._initColumnField(allColumns, viewSetting);
|
|
33
|
+
this._subscribeOnUploadFile(this.fileColumn);
|
|
34
|
+
this._mapDocumentItem(moDataList, this.documentItems);
|
|
35
|
+
this._checkMandatory();
|
|
36
|
+
}
|
|
37
|
+
ngOnChanges(changes) {
|
|
38
|
+
super.ngOnChanges(changes);
|
|
39
|
+
const { moDataList } = changes;
|
|
40
|
+
if (moDataList && !moDataList.firstChange) {
|
|
41
|
+
if (moDataList && !moDataList.firstChange) {
|
|
42
|
+
this._mapDocumentItem(moDataList.currentValue, this.documentItems);
|
|
43
|
+
this.detectChanges();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ngAfterViewInit() {
|
|
48
|
+
super.ngAfterViewInit();
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
for (let i = 0; i < this.documentItems.length - this.moDataList.length; i++) {
|
|
51
|
+
this.createNewMo.emit();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
onFileSelection(files, documentItem, mo) {
|
|
56
|
+
this.selectedMo = mo;
|
|
57
|
+
this._uploadFile(files, documentItem);
|
|
58
|
+
}
|
|
59
|
+
onRemoveFile(file, mo) {
|
|
60
|
+
const fileDbName = this.fileColumn.Name;
|
|
61
|
+
let files = mo[fileDbName].Files;
|
|
62
|
+
if (file.IsNew) {
|
|
63
|
+
files = files.filter((c) => c.Id !== file.Id);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const existFile = files.find((c) => c.Id === file.Id);
|
|
67
|
+
existFile.IsDeleted = true;
|
|
68
|
+
}
|
|
69
|
+
mo[fileDbName].Files = [...files];
|
|
70
|
+
this._updateMo(mo);
|
|
71
|
+
}
|
|
72
|
+
onStatusChanged(e, mo) {
|
|
73
|
+
mo[this.statusColumn.Name] = e.value;
|
|
74
|
+
mo[this.rejectedReasonColumn.Name] = e.rejectedText;
|
|
75
|
+
this._updateMo(mo);
|
|
76
|
+
}
|
|
77
|
+
onRejectedTextChange(text, mo) {
|
|
78
|
+
mo[this.rejectedReasonColumn.Name] = text;
|
|
79
|
+
this._updateMo(mo);
|
|
80
|
+
}
|
|
81
|
+
_checkMandatory() {
|
|
82
|
+
const moDataList = this.moDataList;
|
|
83
|
+
const items = this.documentItems.filter((c) => c.IsRequired);
|
|
84
|
+
let mandatory = items.length > 0;
|
|
85
|
+
const mandatory2 = items
|
|
86
|
+
.map((item) => moDataList.find((c) => c[this.keyColumn.Name] === item.ItemKey))
|
|
87
|
+
.filter((item) => item)
|
|
88
|
+
.some((mo) => mo[this.fileColumn.Name].Files.filter((c) => !c.IsDeleted).length === 0);
|
|
89
|
+
mandatory = mandatory && mandatory2;
|
|
90
|
+
this.mandatory.emit(mandatory);
|
|
91
|
+
}
|
|
92
|
+
_mapDocumentItem(moDataList, documentItems) {
|
|
93
|
+
const keyName = this.keyColumn.Name;
|
|
94
|
+
moDataList.forEach((mo, index) => {
|
|
95
|
+
let documentItem = documentItems.find((c) => c.ItemKey === mo[keyName]); // find setting that matches with mo by itemKey
|
|
96
|
+
if (documentItem) {
|
|
97
|
+
mo.$documentItem = documentItem;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
documentItem = documentItems.find((item) => moDataList.map((c) => c[keyName]).indexOf(item.ItemKey) < 0); // find a setting has not have $RelatedMo yet
|
|
101
|
+
if (documentItem) {
|
|
102
|
+
mo[keyName] = documentItem.ItemKey;
|
|
103
|
+
mo.$documentItem = documentItem;
|
|
104
|
+
this.updateMo.emit(mo);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
_initColumnField(allColumns, viewSetting) {
|
|
110
|
+
const keyColumn = this._findColumnByDbName.transform(allColumns, viewSetting.ItemKeyField);
|
|
111
|
+
const fileColumn = this._findColumnByDbName.transform(allColumns, viewSetting.FileField);
|
|
112
|
+
const acceptedColumn = this._findColumnByDbName.transform(allColumns, viewSetting.AcceptedField);
|
|
113
|
+
const rejectedReasonColumn = this._findColumnByDbName.transform(allColumns, viewSetting.RejectedReasonField);
|
|
114
|
+
const statusColumn = this._findColumnByDbName.transform(allColumns, viewSetting.StatusField);
|
|
115
|
+
!keyColumn && this._columnNotExistsInReport(viewSetting.ItemKeyField);
|
|
116
|
+
!fileColumn && this._columnNotExistsInReport(viewSetting.FileField);
|
|
117
|
+
!rejectedReasonColumn && this._columnNotExistsInReport(viewSetting.RejectedReasonField);
|
|
118
|
+
!acceptedColumn && this._columnNotExistsInReport(viewSetting.AcceptedField);
|
|
119
|
+
!statusColumn && this._columnNotExistsInReport(viewSetting.StatusField);
|
|
120
|
+
keyColumn && (this.keyColumn = keyColumn);
|
|
121
|
+
fileColumn && (this.fileColumn = fileColumn);
|
|
122
|
+
acceptedColumn && (this.acceptedColumn = acceptedColumn);
|
|
123
|
+
rejectedReasonColumn && (this.rejectedReasonColumn = rejectedReasonColumn);
|
|
124
|
+
statusColumn && (this.statusColumn = statusColumn);
|
|
125
|
+
}
|
|
126
|
+
_subscribeOnUploadFile(fileColumn) {
|
|
127
|
+
this._filesValidationHelper = new FilesValidationHelper(0, 0, 0);
|
|
128
|
+
if (this._uploadService) {
|
|
129
|
+
this._createLinearHelper(this._uploadService, this._filesValidationHelper, fileColumn.FieldDefId);
|
|
130
|
+
this.uploadingState$ = this._uploadService.uploadingState$;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
throw new Error('UploadService not provided.');
|
|
134
|
+
}
|
|
135
|
+
this._linearHelper.newFileUploaded$.subscribe((file) => {
|
|
136
|
+
const mo = this.moDataList.find((c) => c.Id === this.selectedMo.Id);
|
|
137
|
+
if (mo) {
|
|
138
|
+
mo[fileColumn.Name].Files = [...mo[fileColumn.Name].Files, file];
|
|
139
|
+
this._updateMo(mo);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
_updateMo(mo) {
|
|
144
|
+
mo.$NewInlineMo = undefined;
|
|
145
|
+
if (mo.$State === 'Unchanged') {
|
|
146
|
+
mo.$State = 'Modified';
|
|
147
|
+
}
|
|
148
|
+
this.updateMo.emit(mo);
|
|
149
|
+
this._checkMandatory();
|
|
150
|
+
}
|
|
151
|
+
_createLinearHelper(uploadService, filesValidationHelper, fieldDefId) {
|
|
152
|
+
this._linearHelper = new LinearListHelper(uploadService, filesValidationHelper, fieldDefId);
|
|
153
|
+
}
|
|
154
|
+
_uploadFile(files, documentItem) {
|
|
155
|
+
const filesValidationHelper = this._filesValidationHelper;
|
|
156
|
+
filesValidationHelper.maxFileCount = +documentItem.MaxFileCount;
|
|
157
|
+
filesValidationHelper.maxFileSize = +documentItem.EachFileSize;
|
|
158
|
+
filesValidationHelper.maxTotalFileSize = +documentItem.MaxFileSize;
|
|
159
|
+
this._linearHelper.uploadToServer(files, documentItem.Title);
|
|
160
|
+
}
|
|
161
|
+
_columnNotExistsInReport(columnCaption) {
|
|
162
|
+
throw new Error(`can not find ${columnCaption} column in report.please add it to report columns.`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
BarsaDocumentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.FindColumnByDbNamePipe }, { token: i1.UlvMainService }, { token: i1.PortalService }, { token: i2.DialogService }, { token: i1.UploadService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
166
|
+
BarsaDocumentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaDocumentsComponent, selector: "bdc-barsa-documents", providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\n <thead fd-table-header>\n <tr fd-table-row>\n <th fd-table-cell>{{ '\u0639\u06A9\u0633' | bbbTranslate }}</th>\n <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ '\u0646\u0648\u0639 \u0645\u062F\u0631\u06A9' | bbbTranslate }}</th>\n <th fd-table-cell style=\"width: 99%\">{{ '\u0627\u0644\u0635\u0627\u0642 \u0641\u0627\u06CC\u0644' | bbbTranslate }}</th>\n <th fd-table-cell></th>\n <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ '\u0648\u0636\u0639\u06CC\u062A' | bbbTranslate }}</th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container *ngFor=\"let mo of moDataList; trackBy: _trackByRow\">\n <bdc-barsa-document-list-item\n *ngIf=\"mo.$documentItem\"\n [documentItem]=\"mo.$documentItem\"\n [accepted]=\"mo[acceptedColumn.Name]\"\n [files]=\"mo[fileColumn.Name].Files\"\n [uploadingState]=\"(uploadingState$ | async)!!\"\n [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\n [fileDbName]=\"fileColumn.Name\"\n [status]=\"+mo[statusColumn.Name]\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"!access.Edit\"\n [deviceSize]=\"deviceSize\"\n (removeFile)=\"onRemoveFile($event, mo)\"\n (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\n (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\n (statusChanged)=\"onStatusChanged($event, mo)\"\n ></bdc-barsa-document-list-item>\n </ng-container>\n <!-- </ul> -->\n </tbody>\n</table>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i4.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i4.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i4.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i4.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "component", type: i5.BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: ["documentItem", "deviceSize", "files", "accepted", "rejectedReason", "readonly", "status", "uploadingState"], outputs: ["statusChanged", "rejectTextChange", "fileSelectionChange", "removeFile", "fullscreen", "download", "downloadAll"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentsComponent, decorators: [{
|
|
168
|
+
type: Component,
|
|
169
|
+
args: [{ selector: 'bdc-barsa-documents', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UploadService], template: "<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\n <thead fd-table-header>\n <tr fd-table-row>\n <th fd-table-cell>{{ '\u0639\u06A9\u0633' | bbbTranslate }}</th>\n <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ '\u0646\u0648\u0639 \u0645\u062F\u0631\u06A9' | bbbTranslate }}</th>\n <th fd-table-cell style=\"width: 99%\">{{ '\u0627\u0644\u0635\u0627\u0642 \u0641\u0627\u06CC\u0644' | bbbTranslate }}</th>\n <th fd-table-cell></th>\n <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ '\u0648\u0636\u0639\u06CC\u062A' | bbbTranslate }}</th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container *ngFor=\"let mo of moDataList; trackBy: _trackByRow\">\n <bdc-barsa-document-list-item\n *ngIf=\"mo.$documentItem\"\n [documentItem]=\"mo.$documentItem\"\n [accepted]=\"mo[acceptedColumn.Name]\"\n [files]=\"mo[fileColumn.Name].Files\"\n [uploadingState]=\"(uploadingState$ | async)!!\"\n [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\n [fileDbName]=\"fileColumn.Name\"\n [status]=\"+mo[statusColumn.Name]\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"!access.Edit\"\n [deviceSize]=\"deviceSize\"\n (removeFile)=\"onRemoveFile($event, mo)\"\n (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\n (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\n (statusChanged)=\"onStatusChanged($event, mo)\"\n ></bdc-barsa-document-list-item>\n </ng-container>\n <!-- </ul> -->\n </tbody>\n</table>\n", styles: [":host{display:block}\n"] }]
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.FindColumnByDbNamePipe }, { type: i1.UlvMainService }, { type: i1.PortalService }, { type: i2.DialogService }, { type: i1.UploadService, decorators: [{
|
|
171
|
+
type: Optional
|
|
172
|
+
}] }]; } });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnRzL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFJVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBRXZCLGFBQWEsRUFNaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVc5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXlDO0lBWWxGLFlBQ2MsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLG1CQUEyQyxFQUMzQyxlQUErQixFQUMvQixjQUE2QixFQUM3QixjQUE2QixFQUNqQixjQUE4QjtRQUVwRCxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVR6RixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixtQkFBYyxHQUFk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SEE3S1EsdUJBQXVCO3dHQUF2Qix1QkFBdUIsOENBRnJCLENBQUMsYUFBYSxDQUFDLHNFQ2pDOUIsdTREQWtDQTsyRkRDYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLENBQUM7OzBCQXNCckIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXG4gICAgTGluZWFyTGlzdEhlbHBlcixcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgVXBsb2FkU2VydmljZSxcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXG4gICAgRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIFVsdk1haW5TZXJ2aWNlLFxuICAgIElVcGxvYWRpbmdTdGF0ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0sIERvY3VtZW50c1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50IGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8RG9jdW1lbnRzU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAga2V5Q29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xuICAgIGZpbGVDb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XG4gICAgc3RhdHVzQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xuICAgIHJlamVjdGVkUmVhc29uQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xuICAgIGFjY2VwdGVkQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xuICAgIHNlbGVjdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgdXBsb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPElVcGxvYWRpbmdTdGF0ZT47XG5cbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xuICAgIHByb3RlY3RlZCBfbGluZWFySGVscGVyOiBMaW5lYXJMaXN0SGVscGVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9maW5kQ29sdW1uQnlEYk5hbWU6IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlPzogVXBsb2FkU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihfZWwsIF9jZHIsIF9yZW5kZXJlcjIsIF9maW5kQ29sdW1uQnlEYk5hbWUsIF91bHZNYWluU2VydmljZSwgX3BvcnRhbFNlcnZpY2UsIF91cGxvYWRTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBnZXQgZG9jdW1lbnRJdGVtcygpOiBBcnJheTxEb2N1bWVudEl0ZW0+IHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRmllbGRJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21GaWVsZEluZm8uRG9jdW1lbnRJdGVtcy5Nb0RhdGFMaXN0IGFzIEFycmF5PERvY3VtZW50SXRlbT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aWV3U2V0dGluZy5GaWxlc1NldHRpbmcuRG9jdW1lbnRJdGVtcy5Nb0RhdGFMaXN0IGFzIEFycmF5PERvY3VtZW50SXRlbT47XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IHsgbW9EYXRhTGlzdCwgdmlld1NldHRpbmcsIGFsbENvbHVtbnMgfSA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5faW5pdENvbHVtbkZpZWxkKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlT25VcGxvYWRGaWxlKHRoaXMuZmlsZUNvbHVtbik7XG4gICAgICAgIHRoaXMuX21hcERvY3VtZW50SXRlbShtb0RhdGFMaXN0LCB0aGlzLmRvY3VtZW50SXRlbXMpO1xuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgbW9EYXRhTGlzdCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGlmIChtb0RhdGFMaXN0ICYmICFtb0RhdGFMaXN0LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWFwRG9jdW1lbnRJdGVtKG1vRGF0YUxpc3QuY3VycmVudFZhbHVlLCB0aGlzLmRvY3VtZW50SXRlbXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRvY3VtZW50SXRlbXMubGVuZ3RoIC0gdGhpcy5tb0RhdGFMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVOZXdNby5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSwgZG9jdW1lbnRJdGVtOiBEb2N1bWVudEl0ZW0sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNbyA9IG1vO1xuICAgICAgICB0aGlzLl91cGxvYWRGaWxlKGZpbGVzLCBkb2N1bWVudEl0ZW0pO1xuICAgIH1cbiAgICBvblJlbW92ZUZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvLCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlRGJOYW1lID0gdGhpcy5maWxlQ29sdW1uLk5hbWU7XG4gICAgICAgIGxldCBmaWxlcyA9IG1vW2ZpbGVEYk5hbWVdLkZpbGVzO1xuICAgICAgICBpZiAoZmlsZS5Jc05ldykge1xuICAgICAgICAgICAgZmlsZXMgPSBmaWxlcy5maWx0ZXIoKGMpID0+IGMuSWQgIT09IGZpbGUuSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RGaWxlID0gZmlsZXMuZmluZCgoYykgPT4gYy5JZCA9PT0gZmlsZS5JZCk7XG4gICAgICAgICAgICBleGlzdEZpbGUuSXNEZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBtb1tmaWxlRGJOYW1lXS5GaWxlcyA9IFsuLi5maWxlc107XG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vKG1vKTtcbiAgICB9XG4gICAgb25TdGF0dXNDaGFuZ2VkKGU6IHsgdmFsdWU6IG51bWJlcjsgcmVqZWN0ZWRUZXh0OiBzdHJpbmcgfSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbW9bdGhpcy5zdGF0dXNDb2x1bW4uTmFtZV0gPSBlLnZhbHVlO1xuICAgICAgICBtb1t0aGlzLnJlamVjdGVkUmVhc29uQ29sdW1uLk5hbWVdID0gZS5yZWplY3RlZFRleHQ7XG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vKG1vKTtcbiAgICB9XG4gICAgb25SZWplY3RlZFRleHRDaGFuZ2UodGV4dDogc3RyaW5nLCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBtb1t0aGlzLnJlamVjdGVkUmVhc29uQ29sdW1uLk5hbWVdID0gdGV4dDtcbiAgICAgICAgdGhpcy5fdXBkYXRlTW8obW8pO1xuICAgIH1cbiAgICBfY2hlY2tNYW5kYXRvcnkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5kb2N1bWVudEl0ZW1zLmZpbHRlcigoYykgPT4gYy5Jc1JlcXVpcmVkKTtcbiAgICAgICAgbGV0IG1hbmRhdG9yeSA9IGl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IG1hbmRhdG9yeTIgPSBpdGVtc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gbW9EYXRhTGlzdC5maW5kKChjKSA9PiBjW3RoaXMua2V5Q29sdW1uLk5hbWVdID09PSBpdGVtLkl0ZW1LZXkpKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSlcbiAgICAgICAgICAgIC5zb21lKChtbykgPT4gbW9bdGhpcy5maWxlQ29sdW1uLk5hbWVdLkZpbGVzLmZpbHRlcigoYykgPT4gIWMuSXNEZWxldGVkKS5sZW5ndGggPT09IDApO1xuICAgICAgICBtYW5kYXRvcnkgPSBtYW5kYXRvcnkgJiYgbWFuZGF0b3J5MjtcbiAgICAgICAgdGhpcy5tYW5kYXRvcnkuZW1pdChtYW5kYXRvcnkpO1xuICAgIH1cbiAgICBfbWFwRG9jdW1lbnRJdGVtKG1vRGF0YUxpc3Q6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+LCBkb2N1bWVudEl0ZW1zOiBBcnJheTxEb2N1bWVudEl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleU5hbWUgPSB0aGlzLmtleUNvbHVtbi5OYW1lO1xuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKG1vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbGV0IGRvY3VtZW50SXRlbSA9IGRvY3VtZW50SXRlbXMuZmluZCgoYykgPT4gYy5JdGVtS2V5ID09PSBtb1trZXlOYW1lXSk7IC8vIGZpbmQgc2V0dGluZyB0aGF0IG1hdGNoZXMgd2l0aCBtbyBieSBpdGVtS2V5XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgbW8uJGRvY3VtZW50SXRlbSA9IGRvY3VtZW50SXRlbTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnRJdGVtID0gZG9jdW1lbnRJdGVtcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gbW9EYXRhTGlzdC5tYXAoKGMpID0+IGNba2V5TmFtZV0pLmluZGV4T2YoaXRlbS5JdGVtS2V5KSA8IDBcbiAgICAgICAgICAgICAgICApOyAvLyBmaW5kIGEgc2V0dGluZyBoYXMgbm90IGhhdmUgJFJlbGF0ZWRNbyB5ZXRcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vW2tleU5hbWVdID0gZG9jdW1lbnRJdGVtLkl0ZW1LZXk7XG4gICAgICAgICAgICAgICAgICAgIG1vLiRkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTW8uZW1pdChtbyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9pbml0Q29sdW1uRmllbGQoYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdLCB2aWV3U2V0dGluZzogRG9jdW1lbnRzU2V0dGluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXlDb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nLkl0ZW1LZXlGaWVsZCk7XG4gICAgICAgIGNvbnN0IGZpbGVDb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nLkZpbGVGaWVsZCk7XG4gICAgICAgIGNvbnN0IGFjY2VwdGVkQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcbiAgICAgICAgY29uc3QgcmVqZWN0ZWRSZWFzb25Db2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nLlJlamVjdGVkUmVhc29uRmllbGQpO1xuICAgICAgICBjb25zdCBzdGF0dXNDb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nLlN0YXR1c0ZpZWxkKTtcbiAgICAgICAgIWtleUNvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5JdGVtS2V5RmllbGQpO1xuICAgICAgICAhZmlsZUNvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5GaWxlRmllbGQpO1xuICAgICAgICAhcmVqZWN0ZWRSZWFzb25Db2x1bW4gJiYgdGhpcy5fY29sdW1uTm90RXhpc3RzSW5SZXBvcnQodmlld1NldHRpbmcuUmVqZWN0ZWRSZWFzb25GaWVsZCk7XG4gICAgICAgICFhY2NlcHRlZENvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcbiAgICAgICAgIXN0YXR1c0NvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5TdGF0dXNGaWVsZCk7XG5cbiAgICAgICAga2V5Q29sdW1uICYmICh0aGlzLmtleUNvbHVtbiA9IGtleUNvbHVtbik7XG4gICAgICAgIGZpbGVDb2x1bW4gJiYgKHRoaXMuZmlsZUNvbHVtbiA9IGZpbGVDb2x1bW4pO1xuICAgICAgICBhY2NlcHRlZENvbHVtbiAmJiAodGhpcy5hY2NlcHRlZENvbHVtbiA9IGFjY2VwdGVkQ29sdW1uKTtcbiAgICAgICAgcmVqZWN0ZWRSZWFzb25Db2x1bW4gJiYgKHRoaXMucmVqZWN0ZWRSZWFzb25Db2x1bW4gPSByZWplY3RlZFJlYXNvbkNvbHVtbik7XG4gICAgICAgIHN0YXR1c0NvbHVtbiAmJiAodGhpcy5zdGF0dXNDb2x1bW4gPSBzdGF0dXNDb2x1bW4pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmliZU9uVXBsb2FkRmlsZShmaWxlQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlciA9IG5ldyBGaWxlc1ZhbGlkYXRpb25IZWxwZXIoMCwgMCwgMCk7XG4gICAgICAgIGlmICh0aGlzLl91cGxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVMaW5lYXJIZWxwZXIodGhpcy5fdXBsb2FkU2VydmljZSwgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyLCBmaWxlQ29sdW1uLkZpZWxkRGVmSWQpO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmdTdGF0ZSQgPSB0aGlzLl91cGxvYWRTZXJ2aWNlLnVwbG9hZGluZ1N0YXRlJDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVXBsb2FkU2VydmljZSBub3QgcHJvdmlkZWQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIubmV3RmlsZVVwbG9hZGVkJC5zdWJzY3JpYmUoKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vID0gdGhpcy5tb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IHRoaXMuc2VsZWN0ZWRNby5JZCk7XG4gICAgICAgICAgICBpZiAobW8pIHtcbiAgICAgICAgICAgICAgICBtb1tmaWxlQ29sdW1uLk5hbWVdLkZpbGVzID0gWy4uLm1vW2ZpbGVDb2x1bW4uTmFtZV0uRmlsZXMsIGZpbGVdO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1vKG1vKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdXBkYXRlTW8obW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbW8uJE5ld0lubGluZU1vID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAobW8uJFN0YXRlID09PSAnVW5jaGFuZ2VkJykge1xuICAgICAgICAgICAgbW8uJFN0YXRlID0gJ01vZGlmaWVkJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZU1vLmVtaXQobW8pO1xuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZUxpbmVhckhlbHBlcihcbiAgICAgICAgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSxcbiAgICAgICAgZmlsZXNWYWxpZGF0aW9uSGVscGVyOiBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXG4gICAgICAgIGZpZWxkRGVmSWQ6IHN0cmluZ1xuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIgPSBuZXcgTGluZWFyTGlzdEhlbHBlcih1cGxvYWRTZXJ2aWNlLCBmaWxlc1ZhbGlkYXRpb25IZWxwZXIsIGZpZWxkRGVmSWQpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3VwbG9hZEZpbGUoZmlsZXM6IEZpbGVbXSwgZG9jdW1lbnRJdGVtOiBEb2N1bWVudEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsZXNWYWxpZGF0aW9uSGVscGVyID0gdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyO1xuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQ7XG4gICAgICAgIGZpbGVzVmFsaWRhdGlvbkhlbHBlci5tYXhGaWxlU2l6ZSA9ICtkb2N1bWVudEl0ZW0uRWFjaEZpbGVTaXplO1xuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4VG90YWxGaWxlU2l6ZSA9ICtkb2N1bWVudEl0ZW0uTWF4RmlsZVNpemU7XG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcywgZG9jdW1lbnRJdGVtLlRpdGxlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydChjb2x1bW5DYXB0aW9uKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kICR7Y29sdW1uQ2FwdGlvbn0gY29sdW1uIGluIHJlcG9ydC5wbGVhc2UgYWRkIGl0IHRvIHJlcG9ydCBjb2x1bW5zLmApO1xuICAgIH1cbn1cbiIsIjwhLS0gPHVsIGZkLWxpc3QgW2J5bGluZV09XCJ0cnVlXCIgZmRDb21wYWN0IFtzZWxlY3Rpb25dPVwiZmFsc2VcIj4gLS0+XG48dGFibGUgZmQtdGFibGUgYXJpYS1sYWJlbD1cIkRlZmF1bHRcIiBbYWxsQ2VsbHNGb2N1c2FibGVdPVwidHJ1ZVwiIFtub0JvcmRlclhdPVwidHJ1ZVwiPlxuICAgIDx0aGVhZCBmZC10YWJsZS1oZWFkZXI+XG4gICAgICAgIDx0ciBmZC10YWJsZS1yb3c+XG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbD57eyAn2LnaqdizJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIm1pbi13aWR0aDogMTQwcHg7IHdpZHRoOiBhdXRvXCI+e3sgJ9mG2YjYuSDZhdiv2LHaqScgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogOTklXCI+e3sgJ9in2YTYtdin2YIg2YHYp9uM2YQnIHwgYmJiVHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPjwvdGg+XG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiA0MDBweDsgbWluLXdpZHRoOiA0MDBweDsgbWF4LXdpZHRoOiA0MDBweFwiPnt7ICfZiNi22LnbjNiqJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHkgZmQtdGFibGUtYm9keT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW8gb2YgbW9EYXRhTGlzdDsgdHJhY2tCeTogX3RyYWNrQnlSb3dcIj5cbiAgICAgICAgICAgIDxiZGMtYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtby4kZG9jdW1lbnRJdGVtXCJcbiAgICAgICAgICAgICAgICBbZG9jdW1lbnRJdGVtXT1cIm1vLiRkb2N1bWVudEl0ZW1cIlxuICAgICAgICAgICAgICAgIFthY2NlcHRlZF09XCJtb1thY2NlcHRlZENvbHVtbi5OYW1lXVwiXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2ZpbGVDb2x1bW4uTmFtZV0uRmlsZXNcIlxuICAgICAgICAgICAgICAgIFt1cGxvYWRpbmdTdGF0ZV09XCIodXBsb2FkaW5nU3RhdGUkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgICAgIFtyZWplY3RlZFJlYXNvbl09XCJtb1tyZWplY3RlZFJlYXNvbkNvbHVtbi5OYW1lXVwiXG4gICAgICAgICAgICAgICAgW2ZpbGVEYk5hbWVdPVwiZmlsZUNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICBbc3RhdHVzXT1cIittb1tzdGF0dXNDb2x1bW4uTmFtZV1cIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhYWNjZXNzLkVkaXRcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIChyZW1vdmVGaWxlKT1cIm9uUmVtb3ZlRmlsZSgkZXZlbnQsIG1vKVwiXG4gICAgICAgICAgICAgICAgKGZpbGVTZWxlY3Rpb25DaGFuZ2UpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudCwgbW8uJGRvY3VtZW50SXRlbSwgbW8pXCJcbiAgICAgICAgICAgICAgICAocmVqZWN0VGV4dENoYW5nZSk9XCJvblJlamVjdGVkVGV4dENoYW5nZSgkZXZlbnQsIG1vKVwiXG4gICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZWQpPVwib25TdGF0dXNDaGFuZ2VkKCRldmVudCwgbW8pXCJcbiAgICAgICAgICAgID48L2JkYy1iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIDwvdWw+IC0tPlxuICAgIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
|
|
@@ -36,10 +36,10 @@ export class CardContentImageAndTitleComponent extends BaseItemContentPropsCompo
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
CardContentImageAndTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardContentImageAndTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
CardContentImageAndTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardContentImageAndTitleComponent, selector: "bdc-card-content-image-and-title", viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["iconRef"], descendants: true, read: ElementRef }, { propertyName: "elemRef", first: true, predicate: ["elemRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"card-content\" #elemRef>\n <div class=\"item-data\">\n <img\n *ngIf=\"iconPicture; else iconTemplate\"\n [imgLazy]=\"iconPicture.FileId | picFieldSrc: 'ID':null:'':100:70\"\n height=\"70\"\n width=\"100\"\n [alt]=\"title\"\n />\n <ng-template #iconTemplate>\n <fd-icon #iconRef *ngIf=\"icon\" [glyph]=\"icon\"> </fd-icon>\n </ng-template>\n </div>\n <h4 fd-title class=\"item-data fd-title--wrap\">\n {{ title }}\n </h4>\n</div>\n", styles: [":host{display:flex;justify-content:center;align-items:stretch;height:100%;width:100%;min-height:180px}:host:hover{cursor:pointer}.card-content{display:flex;align-items:center;flex-direction:column;align-self:stretch;margin-top:auto;margin-bottom:auto;width:100%}.item-data{text-align:center}fd-icon{font-size:2.5rem}h4{height:60px;width:80%;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ImageLazyDirective, selector: "[imgLazy]", inputs: ["auto", "threshold", "imgLazy"], outputs: ["imageLoaded"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39
|
+
CardContentImageAndTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardContentImageAndTitleComponent, selector: "bdc-card-content-image-and-title", viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["iconRef"], descendants: true, read: ElementRef }, { propertyName: "elemRef", first: true, predicate: ["elemRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"card-content\" #elemRef>\r\n <div class=\"item-data\">\r\n <img\r\n *ngIf=\"iconPicture; else iconTemplate\"\r\n [imgLazy]=\"iconPicture.FileId | picFieldSrc: 'ID':null:'':100:70\"\r\n height=\"70\"\r\n width=\"100\"\r\n [alt]=\"title\"\r\n />\r\n <ng-template #iconTemplate>\r\n <fd-icon #iconRef *ngIf=\"icon\" [glyph]=\"icon\"> </fd-icon>\r\n </ng-template>\r\n </div>\r\n <h4 fd-title class=\"item-data fd-title--wrap\">\r\n {{ title }}\r\n </h4>\r\n</div>\r\n", styles: [":host{display:flex;justify-content:center;align-items:stretch;height:100%;width:100%;min-height:180px}:host:hover{cursor:pointer}.card-content{display:flex;align-items:center;flex-direction:column;align-self:stretch;margin-top:auto;margin-bottom:auto;width:100%}.item-data{text-align:center}fd-icon{font-size:2.5rem}h4{height:60px;width:80%;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ImageLazyDirective, selector: "[imgLazy]", inputs: ["auto", "threshold", "imgLazy"], outputs: ["imageLoaded"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardContentImageAndTitleComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'bdc-card-content-image-and-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card-content\" #elemRef>\n <div class=\"item-data\">\n <img\n *ngIf=\"iconPicture; else iconTemplate\"\n [imgLazy]=\"iconPicture.FileId | picFieldSrc: 'ID':null:'':100:70\"\n height=\"70\"\n width=\"100\"\n [alt]=\"title\"\n />\n <ng-template #iconTemplate>\n <fd-icon #iconRef *ngIf=\"icon\" [glyph]=\"icon\"> </fd-icon>\n </ng-template>\n </div>\n <h4 fd-title class=\"item-data fd-title--wrap\">\n {{ title }}\n </h4>\n</div>\n", styles: [":host{display:flex;justify-content:center;align-items:stretch;height:100%;width:100%;min-height:180px}:host:hover{cursor:pointer}.card-content{display:flex;align-items:center;flex-direction:column;align-self:stretch;margin-top:auto;margin-bottom:auto;width:100%}.item-data{text-align:center}fd-icon{font-size:2.5rem}h4{height:60px;width:80%;text-align:center}\n"] }]
|
|
42
|
+
args: [{ selector: 'bdc-card-content-image-and-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card-content\" #elemRef>\r\n <div class=\"item-data\">\r\n <img\r\n *ngIf=\"iconPicture; else iconTemplate\"\r\n [imgLazy]=\"iconPicture.FileId | picFieldSrc: 'ID':null:'':100:70\"\r\n height=\"70\"\r\n width=\"100\"\r\n [alt]=\"title\"\r\n />\r\n <ng-template #iconTemplate>\r\n <fd-icon #iconRef *ngIf=\"icon\" [glyph]=\"icon\"> </fd-icon>\r\n </ng-template>\r\n </div>\r\n <h4 fd-title class=\"item-data fd-title--wrap\">\r\n {{ title }}\r\n </h4>\r\n</div>\r\n", styles: [":host{display:flex;justify-content:center;align-items:stretch;height:100%;width:100%;min-height:180px}:host:hover{cursor:pointer}.card-content{display:flex;align-items:center;flex-direction:column;align-self:stretch;margin-top:auto;margin-bottom:auto;width:100%}.item-data{text-align:center}fd-icon{font-size:2.5rem}h4{height:60px;width:80%;text-align:center}\n"] }]
|
|
43
43
|
}], propDecorators: { iconRef: [{
|
|
44
44
|
type: ViewChild,
|
|
45
45
|
args: ['iconRef', { read: ElementRef }]
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
47
47
|
type: ViewChild,
|
|
48
48
|
args: ['elemRef', { read: ElementRef }]
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlL2NhcmQtY29udGVudC1pbWFnZS1hbmQtdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLDZCQUE2QixFQUEyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFRcEgsTUFBTSxPQUFPLGlDQUNULFNBQVEsNkJBQXNEO0lBaUI5RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQztZQUMxRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLDRCQUE0QixDQUFDO1lBQ3BFLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDO1lBRXBELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXBGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUNyRDtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDL0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQzs7OEhBbkRRLGlDQUFpQztrSEFBakMsaUNBQWlDLHVKQUlaLFVBQVUsNkZBQ1YsVUFBVSxvRENkNUMsZ2xCQWlCQTsyRkRSYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU1ILE9BQU87c0JBQWxELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDRSxPQUFPO3NCQUFsRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlUGljdHVyZUluZm9Nb2RlbCwgQmFzZUl0ZW1Db250ZW50UHJvcHNDb21wb25lbnQsIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtY29udGVudC1pbWFnZS1hbmQtdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZUl0ZW1Db250ZW50UHJvcHNDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgICBAVmlld0NoaWxkKCdpY29uUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGljb25SZWY6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdlbGVtUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGVsZW1SZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgaWNvbkNvbG9yOiBzdHJpbmc7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuICAgIGJhY2tncm91bmRIb3ZlckNvbG9yOiBzdHJpbmc7XHJcbiAgICBpY29uSG92ZXJDb2xvcjogc3RyaW5nO1xyXG4gICAgX2ljb25Db2xvcjogc3RyaW5nO1xyXG4gICAgX2ljb25Ib3ZlckNvbG9yOiBzdHJpbmc7XHJcbiAgICBfYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgaWNvblBpY3R1cmU6IEZpbGVQaWN0dXJlSW5mb01vZGVsO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVycztcclxuICAgICAgICBpZiAocGFyYW1ldGVycyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvbkNvbG9yID0gcGFyYW1ldGVycy5Gb250SWNvbkNvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IHBhcmFtZXRlcnMuRm9udEljb25CYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZEhvdmVyQ29sb3IgPSBwYXJhbWV0ZXJzLkZvbnRJY29uSG92ZXJCYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvbkhvdmVyQ29sb3IgPSBwYXJhbWV0ZXJzLkZvbnRJY29uSG92ZXJDb2xvcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaWNvblBpY3R1cmUgPSB0aGlzLl9ydmFsLnRyYW5zZm9ybShwYXJhbWV0ZXJzLkljb25QaWN0dXJlLCB0aGlzLm1vLCB0aGlzLmFsbENvbHVtbnMpO1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5fcnZhbC50cmFuc2Zvcm0ocGFyYW1ldGVycy5UaXRsZSwgdGhpcy5tbywgdGhpcy5hbGxDb2x1bW5zKTtcclxuICAgICAgICAgICAgdGhpcy5pY29uID0gdGhpcy5fcnZhbC50cmFuc2Zvcm0ocGFyYW1ldGVycy5Gb250SWNvbk5hbWUsIHRoaXMubW8sIHRoaXMuYWxsQ29sdW1ucyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVOdW1iZXJTaWduKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJlcGFyZU51bWJlclNpZ24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaWNvbkNvbG9yLmluZGV4T2YoJyMnKSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5pY29uQ29sb3IgPSAnIycgKyB0aGlzLmljb25Db2xvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJhY2tncm91bmRDb2xvci5pbmRleE9mKCcjJykgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gJyMnICsgdGhpcy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5iYWNrZ3JvdW5kSG92ZXJDb2xvci5pbmRleE9mKCcjJykgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZEhvdmVyQ29sb3IgPSAnIycgKyB0aGlzLmJhY2tncm91bmRIb3ZlckNvbG9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaWNvbkhvdmVyQ29sb3IuaW5kZXhPZignIycpIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLmljb25Ib3ZlckNvbG9yID0gJyMnICsgdGhpcy5pY29uSG92ZXJDb2xvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQtY29udGVudFwiICNlbGVtUmVmPlxyXG4gICAgPGRpdiBjbGFzcz1cIml0ZW0tZGF0YVwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgKm5nSWY9XCJpY29uUGljdHVyZTsgZWxzZSBpY29uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbaW1nTGF6eV09XCJpY29uUGljdHVyZS5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsOicnOjEwMDo3MFwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjcwXCJcclxuICAgICAgICAgICAgd2lkdGg9XCIxMDBcIlxyXG4gICAgICAgICAgICBbYWx0XT1cInRpdGxlXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZmQtaWNvbiAjaWNvblJlZiAqbmdJZj1cImljb25cIiBbZ2x5cGhdPVwiaWNvblwiPiA8L2ZkLWljb24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGg0IGZkLXRpdGxlIGNsYXNzPVwiaXRlbS1kYXRhIGZkLXRpdGxlLS13cmFwXCI+XHJcbiAgICAgICAge3sgdGl0bGUgfX1cclxuICAgIDwvaDQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -30,9 +30,9 @@ export class CardContentLineChartComponent extends BaseItemContentPropsComponent
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
CardContentLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardContentLineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
CardContentLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardContentLineChartComponent, selector: "bdc-card-content-line-chart", usesInheritance: true, ngImport: i0, template: "<div class=\"card-content\" *ngIf=\"chartOption\" #elemRef>\n <div beChartLineTime [chartOption]=\"chartOption\"></div>\n</div>\n", styles: [":host{display:block;padding:15px}.card-content{height:300px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ChartLineTimeBaseDirective, selector: "[beChartLineTime]", inputs: ["chartOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
33
|
+
CardContentLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardContentLineChartComponent, selector: "bdc-card-content-line-chart", usesInheritance: true, ngImport: i0, template: "<div class=\"card-content\" *ngIf=\"chartOption\" #elemRef>\r\n <div beChartLineTime [chartOption]=\"chartOption\"></div>\r\n</div>\r\n", styles: [":host{display:block;padding:15px}.card-content{height:300px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ChartLineTimeBaseDirective, selector: "[beChartLineTime]", inputs: ["chartOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardContentLineChartComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'bdc-card-content-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card-content\" *ngIf=\"chartOption\" #elemRef>\n <div beChartLineTime [chartOption]=\"chartOption\"></div>\n</div>\n", styles: [":host{display:block;padding:15px}.card-content{height:300px}\n"] }]
|
|
36
|
+
args: [{ selector: 'bdc-card-content-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card-content\" *ngIf=\"chartOption\" #elemRef>\r\n <div beChartLineTime [chartOption]=\"chartOption\"></div>\r\n</div>\r\n", styles: [":host{display:block;padding:15px}.card-content{height:300px}\n"] }]
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb250ZW50LWxpbmUtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvY2FyZC1jb250ZW50LWxpbmUtY2hhcnQvY2FyZC1jb250ZW50LWxpbmUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvY2FyZC1jb250ZW50LWxpbmUtY2hhcnQvY2FyZC1jb250ZW50LWxpbmUtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLDZCQUE2QixFQUEyQixNQUFNLHNCQUFzQixDQUFDOzs7O0FBUXhHLE1BQU0sT0FBTyw2QkFDVCxTQUFRLDZCQUFzRDtJQUs5RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsTUFBTSxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUNsRSxNQUFNLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUNqQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNILGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6QixVQUFVLEVBQUUsZ0JBQWdCO1lBQzVCLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLFNBQVMsRUFBRSxDQUFDLFdBQW1CLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUM7WUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDOzswSEE1QlEsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMEZDVDFDLDRJQUdBOzJGRE1hLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFyc2FBcGksIEJhc2VJdGVtQ29udGVudFByb3BzQ29tcG9uZW50LCBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiZGMtY2FyZC1jb250ZW50LWxpbmUtY2hhcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZUl0ZW1Db250ZW50UHJvcHNDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgICBjaGFydE9wdGlvbjogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVycztcclxuICAgICAgICBjb25zdCB7IE1ldGhvZFBhcmFtZXRlcnNGaWVsZE5hbWUsIFJ1bkJsTWV0aG9kTmFtZSB9ID0gcGFyYW1ldGVycztcclxuICAgICAgICBjb25zdCBtZXRob2RQYXJhbWV0ZXJzOiBhbnkgPSBbXTtcclxuICAgICAgICBNZXRob2RQYXJhbWV0ZXJzRmllbGROYW1lLnNwbGl0KCcsJykuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMubW9bY107XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLklkKSB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2RQYXJhbWV0ZXJzLnB1c2godmFsdWUuSWQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kUGFyYW1ldGVycy5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xyXG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBtZXRob2RQYXJhbWV0ZXJzLFxyXG4gICAgICAgICAgICBNZXRob2Q6IFJ1bkJsTWV0aG9kTmFtZSxcclxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoY2hhcnRPcHRpb246IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFydE9wdGlvbiA9IEpTT04ucGFyc2UoY2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgRmFpbEZuOiAoKSA9PiB7fVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIiAqbmdJZj1cImNoYXJ0T3B0aW9uXCIgI2VsZW1SZWY+XHJcbiAgICA8ZGl2IGJlQ2hhcnRMaW5lVGltZSBbY2hhcnRPcHRpb25dPVwiY2hhcnRPcHRpb25cIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|