barsa-sap-ui 2.2.43 → 2.2.45
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/esm2022/lib/barsa-card-banner/barsa-card-banner.component.mjs +38 -0
- package/esm2022/lib/barsa-sap-ui.module.mjs +25 -23
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +4 -2
- package/esm2022/lib/index.mjs +6 -2
- package/esm2022/lib/layout-control/layout-control.component.mjs +13 -3
- package/esm2022/lib/models/grid-view.mjs +1 -1
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +3 -3
- package/esm2022/lib/ui-report-carousel-view/ui-report-carousel-view.component.mjs +148 -0
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +3 -3
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +8 -9
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/barsa-sap-ui.mjs +204 -18
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-card-banner/barsa-card-banner.component.d.ts +23 -0
- package/lib/barsa-sap-ui.module.d.ts +38 -36
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/layout-control/layout-control.component.d.ts +1 -0
- package/lib/models/grid-view.d.ts +16 -0
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +1 -0
- package/lib/ui-report-carousel-view/ui-report-carousel-view.component.d.ts +40 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FyZFR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBFanJheU9sZ28gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwsIE1vRm9yUmVwb3J0TW9kZWwsIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbnRleHQge1xyXG4gICAgY29sdW1uczogbnVtYmVyO1xyXG4gICAgaXNDaGVja0xpc3Q6IGFueTtcclxuICAgIGdyb3VwYnk6IG51bWJlcjtcclxuICAgIHRvb2xiYXJCdXR0b25zOiBudW1iZXI7XHJcbiAgICBjb2x1bW5zQ291bnQ6IG51bWJlcjtcclxuICAgICRpbXBsaWNpdDogbnVtYmVyO1xyXG4gICAgYWxsQ2hlY2tlZDogbnVtYmVyO1xyXG4gICAgc2Vjb25kYXJ5Q29sdW1uczogbnVtYmVyO1xyXG59XHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVZpZXdTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xyXG4gICAgRml0V2lkdGg6IGJvb2xlYW47XHJcbiAgICBHcm91cFN1bW1hcnk6IGJvb2xlYW47XHJcbiAgICBGcmVlemVDb2x1bW46IHN0cmluZztcclxuICAgIE5vSG9yaXp0b25hbEJvcmRlcnM6IGJvb2xlYW47XHJcbiAgICBOb1ZlcnRpY2FsQm9yZGVyczogYm9vbGVhbjtcclxuICAgIE5vQm9yZGVyczogYm9vbGVhbjtcclxuICAgIE5vQm9keUJvcmRlcnM6IGJvb2xlYW47XHJcbiAgICBIaWRlSXRlbUNvdW50OiBib29sZWFuO1xyXG4gICAgSW5maW5pdGVTY3JvbGw6IGJvb2xlYW47XHJcbiAgICBCb2R5SGVpZ2h0OiBzdHJpbmc7XHJcbiAgICBEaXNhYmxlUmVzcG9uc2l2ZTogYm9vbGVhbjtcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zOiBNb0ZvclJlcG9ydE1vZGVsO1xyXG4gICAgU2VsZWN0aW9uTW9kZTogbnVtYmVyOyAvLyAxLW5vc2VsZWN0aW9uIDItc2luZ2xlIDMtbXVsdGlcclxuICAgIENvbHVtbkNvbXBvbmVudHM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FyZFR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBFanJheU9sZ28gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwsIE1vRm9yUmVwb3J0TW9kZWwsIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbnRleHQge1xyXG4gICAgY29sdW1uczogbnVtYmVyO1xyXG4gICAgaXNDaGVja0xpc3Q6IGFueTtcclxuICAgIGdyb3VwYnk6IG51bWJlcjtcclxuICAgIHRvb2xiYXJCdXR0b25zOiBudW1iZXI7XHJcbiAgICBjb2x1bW5zQ291bnQ6IG51bWJlcjtcclxuICAgICRpbXBsaWNpdDogbnVtYmVyO1xyXG4gICAgYWxsQ2hlY2tlZDogbnVtYmVyO1xyXG4gICAgc2Vjb25kYXJ5Q29sdW1uczogbnVtYmVyO1xyXG59XHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVZpZXdTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xyXG4gICAgRml0V2lkdGg6IGJvb2xlYW47XHJcbiAgICBHcm91cFN1bW1hcnk6IGJvb2xlYW47XHJcbiAgICBGcmVlemVDb2x1bW46IHN0cmluZztcclxuICAgIE5vSG9yaXp0b25hbEJvcmRlcnM6IGJvb2xlYW47XHJcbiAgICBOb1ZlcnRpY2FsQm9yZGVyczogYm9vbGVhbjtcclxuICAgIE5vQm9yZGVyczogYm9vbGVhbjtcclxuICAgIE5vQm9keUJvcmRlcnM6IGJvb2xlYW47XHJcbiAgICBIaWRlSXRlbUNvdW50OiBib29sZWFuO1xyXG4gICAgSW5maW5pdGVTY3JvbGw6IGJvb2xlYW47XHJcbiAgICBCb2R5SGVpZ2h0OiBzdHJpbmc7XHJcbiAgICBEaXNhYmxlUmVzcG9uc2l2ZTogYm9vbGVhbjtcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zOiBNb0ZvclJlcG9ydE1vZGVsO1xyXG4gICAgU2VsZWN0aW9uTW9kZTogbnVtYmVyOyAvLyAxLW5vc2VsZWN0aW9uIDItc2luZ2xlIDMtbXVsdGlcclxuICAgIENvbHVtbkNvbXBvbmVudHM/OiBNb0ZvclJlcG9ydE1vZGVsO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlMaXN0Vmlld1NldHRpbmcgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICBJdGVtVHlwZSRDYXB0aW9uPzogc3RyaW5nO1xyXG4gICAgVGl0bGU6IHN0cmluZztcclxuICAgIFN1YnRpdGxlOiBzdHJpbmc7XHJcbiAgICBBdmF0YXI6IHN0cmluZztcclxuICAgIFN0YXR1czogc3RyaW5nO1xyXG4gICAgRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIE5vblNlbGVjdGFibGU6IGJvb2xlYW47XHJcbiAgICBBdmF0YXJTaXplOiBzdHJpbmc7XHJcbiAgICBJdGVtQ29tcG9uZW50OiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlDYXJkTGlzdFZpZXdTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgVGl0bGU6IHN0cmluZztcclxuICAgIFN1YnRpdGxlOiBzdHJpbmc7XHJcbiAgICBBdmF0YXI6IHN0cmluZztcclxuICAgIEF2YXRhclNpemU6IHN0cmluZztcclxuICAgIENpcmNsZUF2YXRhcjogYm9vbGVhbjtcclxuICAgIFN0YXR1czogc3RyaW5nO1xyXG4gICAgRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIEZpZWxkTGlzdDogc3RyaW5nO1xyXG4gICAgQWN0aW9uRmllbGROYW1lOiBzdHJpbmc7XHJcbiAgICBBY3Rpb25GaWVsZENvbW1hbmQ6IHN0cmluZztcclxuICAgIENhcmRXaWR0aDogc3RyaW5nO1xyXG4gICAgQ29udGVudENvbXBvbmVudDogRWpyYXlPbGdvO1xyXG4gICAgQ2FyZFR5cGUkQ2FwdGlvbjogQ2FyZFR5cGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBVaUNhcm91c2VsVmlld1NldHRpbmcgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICBUaXRsZTogc3RyaW5nO1xyXG4gICAgU3VidGl0bGU6IHN0cmluZztcclxuICAgIEF2YXRhcjogc3RyaW5nO1xyXG4gICAgQXZhdGFyU2l6ZTogc3RyaW5nO1xyXG4gICAgQ2lyY2xlQXZhdGFyOiBib29sZWFuO1xyXG4gICAgU3RhdHVzOiBzdHJpbmc7XHJcbiAgICBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgRmllbGRMaXN0OiBzdHJpbmc7XHJcbiAgICBBY3Rpb25GaWVsZE5hbWU6IHN0cmluZztcclxuICAgIEFjdGlvbkZpZWxkQ29tbWFuZDogc3RyaW5nO1xyXG4gICAgQ2Fyb3VzZWxUeXBlOiAnZnVsbCcgfCAnbXVsdGlwbGUnIHwgJ3NpbmdsZScgfCAnc21hbGwnIHwgdW5kZWZpbmVkO1xyXG4gICAgQ29udGVudENvbXBvbmVudDogRWpyYXlPbGdvO1xyXG4gICAgQ2FyZFR5cGUkQ2FwdGlvbjogQ2FyZFR5cGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlVmlldyB7XHJcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHZpZXdTZXR0aW5nOiBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVpTm90aWZpY2F0aW9uVmlld1NldHRpbmdzIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xyXG4gICAgVGl0bGVGaWVsZDogc3RyaW5nO1xyXG4gICAgRGVzY3JpcHRpb25GaWVsZDogc3RyaW5nO1xyXG4gICAgRmllbGRMaXN0SW5Gb290ZXI6IHN0cmluZztcclxuICAgIFdvcmtmbG93QnV0dG9uc0ZpZWxkOiBzdHJpbmc7XHJcbn1cclxuIl19
|
|
@@ -122,15 +122,15 @@ export class UiFileLinearListBoxComponent extends DeviceInfoFieldBaseComponent {
|
|
|
122
122
|
this._fileCountSource.next(value?.filter((c) => !c.IsDeleted).length);
|
|
123
123
|
}
|
|
124
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "directive", type: i1.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i2.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i3.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: i4.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i5.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i6.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i8.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i9.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i10.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i11.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.IsImagePipe, name: "isImageType" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "directive", type: i1.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i2.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i3.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: i4.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i5.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i6.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i8.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i9.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i10.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i11.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.IsImagePipe, name: "isImageType" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
126
126
|
}
|
|
127
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
|
-
args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
|
|
129
|
+
args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (value) {\r\n<div\r\n class=\"token-container\"\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n>\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( (valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete') && !file.IsNew ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex;width:100%}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap;width:100%}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
|
|
130
130
|
}], propDecorators: { fileUploadComponent: [{
|
|
131
131
|
type: ViewChild,
|
|
132
132
|
args: [FileUploaderComponent, { static: false }]
|
|
133
133
|
}], value: [{
|
|
134
134
|
type: Input
|
|
135
135
|
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw0QkFBNEI7SUFSOUU7O1FBYUksZUFBVSxHQUFHLElBQUksVUFBVSxFQUFtQixDQUFDO1FBSy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztLQTJHN0Q7SUExR0csUUFBUTtRQUNKLEtBQUss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QUM7SUFDUyxnQkFBZ0IsQ0FBQyxpQkFBcUM7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNTLGFBQWEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQzsrR0F6SFEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa0ZBSjFCLENBQUMsYUFBYSxDQUFDLCtFQUtmLHFCQUFxQix1RUN4QnBDLG1sSkE4RkE7OzRGRHZFYSw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0ksNkJBQTZCLGFBRzVCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHb0MsbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDMUMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXHJcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXHJcbiAgICBnZXRWYWxpZEV4dGVuc2lvbixcclxuICAgIExpbmVhckxpc3RIZWxwZXJcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9kZXZpY2UtaW5mby1maWVsZC1iYXNlJztcclxuaW1wb3J0IHsgSVVwbG9hZGluZ1N0YXRlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1maWxlLWxpbmVhci1saXN0LWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlGaWxlTGluZWFyTGlzdEJveENvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKEZpbGVVcGxvYWRlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZpbGVVcGxvYWRDb21wb25lbnQ6IEZpbGVVcGxvYWRlckNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuXHJcbiAgICBmaWxlQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICB1cGxvYWRpbmckID0gbmV3IE9ic2VydmFibGU8SVVwbG9hZGluZ1N0YXRlPigpO1xyXG5cclxuICAgIHZhbHVlRXh0cmEkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogVXBsb2FkRmlsZVByb3BzIH0+O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIGZpbGVEb3dubG9hZGluZzogYm9vbGVhbjtcclxuICAgIHZhbGlkRXh0ZW5zaW9uID0gJyc7XHJcbiAgICBtYXhGaWxlQ291bnQ6IG51bWJlcjtcclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfbGluZWFySGVscGVyOiBMaW5lYXJMaXN0SGVscGVyO1xyXG4gICAgcHJvdGVjdGVkIF9maWxlc1ZhbGlkYXRpb25IZWxwZXI6IEZpbGVzVmFsaWRhdGlvbkhlbHBlcjtcclxuICAgIHByaXZhdGUgX2ZpbGVDb3VudFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hSZXNpemUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBTaG93VXBsb2FkV2luZG93OiB0aGlzLl9zaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIgPSBuZXcgRmlsZXNWYWxpZGF0aW9uSGVscGVyKFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZUNvdW50LFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZVNpemVLYixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLk1heFRvdGFsRmlsZVNpemVLYlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyID0gbmV3IExpbmVhckxpc3RIZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLkZpZWxkRGVmSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZUNvdW50JCA9IHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVFeHRyYSQgPSB0aGlzLl9saW5lYXJIZWxwZXIudmFsdWVFeHRyYSQ7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmckID0gdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZGluZyQ7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmRlbGV0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5uZXdGaWxlVXBsb2FkZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGZpbGVBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25ld0ZpbGVVcGxvYWRlZChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5pbml0KGMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNNdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhGaWxlQ291bnQgPSB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50O1xyXG4gICAgICAgIHRoaXMudmFsaWRFeHRlbnNpb24gPSBnZXRWYWxpZEV4dGVuc2lvbih0aGlzLlNldHRpbmcuVmFsaWRFeHRlbnNpb25zKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlRXh0cmEgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ1Nob3dVcGxvYWRXaW5kb3cnLCB0aGlzLl9zaG93VXBsb2FkV2luZG93KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFmaWxlLklzTmV3IHx8IGZpbGUuVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgfHwgIWZpbGUuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0Rvd25sb2FkJywgZmlsZS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRmlsZURlbGV0ZWQoZmlsZUlkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZURlbGV0ZShmaWxlSWQpO1xyXG4gICAgfVxyXG4gICAgb25UZXJtaW5hdGUoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmNhbmNlbChmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcyk7XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UodmlzaWJpbGl0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09ICdWaXNpYmxlJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVmcmVzaFJlc2l6ZSgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGZpbGUsIGluZGV4KTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUuSWQgOiBpbmRleDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZWZyZXNoUmVzaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHggPSBNYXRoLmZsb29yKHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgeCArICdweCcpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIHJldHJ5KGZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIucmV0cnkoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zaG93VXBsb2FkV2luZG93KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZENvbXBvbmVudC5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVEZWxldGUoaWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlQXR0YWNobWVudCA9IHRoaXMudmFsdWUuZmluZCgoYykgPT4gYy5JZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmIChmaWxlQXR0YWNobWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGZpbGVBdHRhY2htZW50LklkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9uZXdGaWxlVXBsb2FkZWQobmV3RmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdGaWxlVXBsb2FkJywgbmV3RmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaWxlQ291bnQodmFsdWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9maWxlQ291bnRTb3VyY2UubmV4dCh2YWx1ZT8uZmlsdGVyKChjKSA9PiAhYy5Jc0RlbGV0ZWQpLmxlbmd0aCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGxvYWRGaWxlUHJvcHMge1xyXG4gICAgRmlsZVVybD86IHN0cmluZztcclxuICAgIGNhbmNlbGF0aW9uJD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBiaW5hcnk/OiBhbnk7XHJcbiAgICBVcGxvYWRTdGF0ZT86IHN0cmluZztcclxuICAgIFByb2dyZXNzPzogbnVtYmVyO1xyXG4gICAgSXNJY29uPzogYm9vbGVhbjtcclxufVxyXG4iLCJAaWYgKHZhbHVlKSB7XHJcbjxkaXZcclxuICAgIGNsYXNzPVwidG9rZW4tY29udGFpbmVyXCJcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi13cmFwcGVyXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgdHJhY2tCeUlkKCRpbmRleCwgZmlsZSkpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8ZmQtcG9wb3ZlciAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlbiAob25DbG9zZUNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIiBbcmVhZE9ubHldPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgZmlsZS5GaWxlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgIT09ICdDb21wbGV0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmlsZS5JZCB8IHVwbG9hZEZpbGVTdGF0dXM6IHZhbHVlRXh0cmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInRmlsZSBVcGxvYWQgU3RhdHVzIElzICcgKyB2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcyB8fCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJpbmZvcm1hdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9IH1cclxuICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhJCB8IGFzeW5jOyBhcyB2YWx1ZUV4dHJhKSB7IEBpZiAoIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgIT09ICdFcnJvcicgfHxcclxuICAgICAgICAgICAgICAgIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgKSB7XHJcbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLWNvbnRlbnRcclxuICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaXNNb2JpbGUgPyAnMTAwdncnIDogJzMwdncnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNNb2JpbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhblByaW50XT1cImZpbGUuVHlwZSB8IGlzSW1hZ2VUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cIltmaWxlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlRnVsbFNjcmVlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dWwgZmQtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRG93bmxvYWRGaWxlKGZpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJkb3dubG9hZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkJyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yIFtsb2FkaW5nXT1cImZpbGVEb3dubG9hZGluZ1wiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD4gLS0+XHJcbiAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3JlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFtzaXplXT1cIidzJ1wiIHN0eWxlPVwiYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAaWYgKChmaWxlQ291bnQkIHwgYXN5bmMpIHwgY2FuVXBsb2FkRmlsZTogbWF4RmlsZUNvdW50OihkaXNhYmxlJCB8IGFzeW5jKT09PXRydWU6KHJlYWRvbmx5JCB8XHJcbiAgICAgICAgICAgIGFzeW5jKT09PXRydWUpIHtcclxuICAgICAgICAgICAgPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saW5lYXItdXBsb2FkXCJcclxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidsaW5lYXJfJyArIGlkXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbkxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYnV0dG9uQXJpYUxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cInZhbGlkRXh0ZW5zaW9uXCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtYXhGaWxlQ291bnQgPiAxIHx8IFNldHRpbmcuSXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw0QkFBNEI7SUFSOUU7O1FBYUksZUFBVSxHQUFHLElBQUksVUFBVSxFQUFtQixDQUFDO1FBSy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztLQTJHN0Q7SUExR0csUUFBUTtRQUNKLEtBQUss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QUM7SUFDUyxnQkFBZ0IsQ0FBQyxpQkFBcUM7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNTLGFBQWEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQzsrR0F6SFEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa0ZBSjFCLENBQUMsYUFBYSxDQUFDLCtFQUtmLHFCQUFxQix1RUN4QnBDLG9tSkE4RkE7OzRGRHZFYSw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0ksNkJBQTZCLGFBRzVCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHb0MsbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDMUMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXHJcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXHJcbiAgICBnZXRWYWxpZEV4dGVuc2lvbixcclxuICAgIExpbmVhckxpc3RIZWxwZXJcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9kZXZpY2UtaW5mby1maWVsZC1iYXNlJztcclxuaW1wb3J0IHsgSVVwbG9hZGluZ1N0YXRlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1maWxlLWxpbmVhci1saXN0LWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlGaWxlTGluZWFyTGlzdEJveENvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKEZpbGVVcGxvYWRlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZpbGVVcGxvYWRDb21wb25lbnQ6IEZpbGVVcGxvYWRlckNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuXHJcbiAgICBmaWxlQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICB1cGxvYWRpbmckID0gbmV3IE9ic2VydmFibGU8SVVwbG9hZGluZ1N0YXRlPigpO1xyXG5cclxuICAgIHZhbHVlRXh0cmEkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogVXBsb2FkRmlsZVByb3BzIH0+O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIGZpbGVEb3dubG9hZGluZzogYm9vbGVhbjtcclxuICAgIHZhbGlkRXh0ZW5zaW9uID0gJyc7XHJcbiAgICBtYXhGaWxlQ291bnQ6IG51bWJlcjtcclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfbGluZWFySGVscGVyOiBMaW5lYXJMaXN0SGVscGVyO1xyXG4gICAgcHJvdGVjdGVkIF9maWxlc1ZhbGlkYXRpb25IZWxwZXI6IEZpbGVzVmFsaWRhdGlvbkhlbHBlcjtcclxuICAgIHByaXZhdGUgX2ZpbGVDb3VudFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hSZXNpemUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBTaG93VXBsb2FkV2luZG93OiB0aGlzLl9zaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIgPSBuZXcgRmlsZXNWYWxpZGF0aW9uSGVscGVyKFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZUNvdW50LFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZVNpemVLYixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLk1heFRvdGFsRmlsZVNpemVLYlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyID0gbmV3IExpbmVhckxpc3RIZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLkZpZWxkRGVmSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZUNvdW50JCA9IHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVFeHRyYSQgPSB0aGlzLl9saW5lYXJIZWxwZXIudmFsdWVFeHRyYSQ7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmckID0gdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZGluZyQ7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmRlbGV0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5uZXdGaWxlVXBsb2FkZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGZpbGVBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25ld0ZpbGVVcGxvYWRlZChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5pbml0KGMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNNdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhGaWxlQ291bnQgPSB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50O1xyXG4gICAgICAgIHRoaXMudmFsaWRFeHRlbnNpb24gPSBnZXRWYWxpZEV4dGVuc2lvbih0aGlzLlNldHRpbmcuVmFsaWRFeHRlbnNpb25zKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlRXh0cmEgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ1Nob3dVcGxvYWRXaW5kb3cnLCB0aGlzLl9zaG93VXBsb2FkV2luZG93KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFmaWxlLklzTmV3IHx8IGZpbGUuVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgfHwgIWZpbGUuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0Rvd25sb2FkJywgZmlsZS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRmlsZURlbGV0ZWQoZmlsZUlkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZURlbGV0ZShmaWxlSWQpO1xyXG4gICAgfVxyXG4gICAgb25UZXJtaW5hdGUoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmNhbmNlbChmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcyk7XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UodmlzaWJpbGl0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09ICdWaXNpYmxlJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVmcmVzaFJlc2l6ZSgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGZpbGUsIGluZGV4KTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUuSWQgOiBpbmRleDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZWZyZXNoUmVzaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHggPSBNYXRoLmZsb29yKHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgeCArICdweCcpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIHJldHJ5KGZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIucmV0cnkoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zaG93VXBsb2FkV2luZG93KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZENvbXBvbmVudC5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVEZWxldGUoaWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlQXR0YWNobWVudCA9IHRoaXMudmFsdWUuZmluZCgoYykgPT4gYy5JZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmIChmaWxlQXR0YWNobWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9kZWxldGVGaWxlQXR0YWNobWVudChmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGZpbGVBdHRhY2htZW50LklkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9uZXdGaWxlVXBsb2FkZWQobmV3RmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdGaWxlVXBsb2FkJywgbmV3RmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaWxlQ291bnQodmFsdWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9maWxlQ291bnRTb3VyY2UubmV4dCh2YWx1ZT8uZmlsdGVyKChjKSA9PiAhYy5Jc0RlbGV0ZWQpLmxlbmd0aCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGxvYWRGaWxlUHJvcHMge1xyXG4gICAgRmlsZVVybD86IHN0cmluZztcclxuICAgIGNhbmNlbGF0aW9uJD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBiaW5hcnk/OiBhbnk7XHJcbiAgICBVcGxvYWRTdGF0ZT86IHN0cmluZztcclxuICAgIFByb2dyZXNzPzogbnVtYmVyO1xyXG4gICAgSXNJY29uPzogYm9vbGVhbjtcclxuICAgIElzTmV3PzogYm9vbGVhbjtcclxufVxyXG4iLCJAaWYgKHZhbHVlKSB7XHJcbjxkaXZcclxuICAgIGNsYXNzPVwidG9rZW4tY29udGFpbmVyXCJcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi13cmFwcGVyXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgdHJhY2tCeUlkKCRpbmRleCwgZmlsZSkpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8ZmQtcG9wb3ZlciAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlbiAob25DbG9zZUNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIiBbcmVhZE9ubHldPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgZmlsZS5GaWxlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgIT09ICdDb21wbGV0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmlsZS5JZCB8IHVwbG9hZEZpbGVTdGF0dXM6IHZhbHVlRXh0cmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInRmlsZSBVcGxvYWQgU3RhdHVzIElzICcgKyB2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcyB8fCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJpbmZvcm1hdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9IH1cclxuICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhJCB8IGFzeW5jOyBhcyB2YWx1ZUV4dHJhKSB7IEBpZiAoICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlICE9PSAnRXJyb3InIHx8XHJcbiAgICAgICAgICAgICAgICB2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlID09PSAnQ29tcGxldGUnKSAmJiAhZmlsZS5Jc05ldyApIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpc01vYmlsZSA/ICcxMDB2dycgOiAnMzB2dydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYXJkTW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0NvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpIHx8ICdzJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vYmlsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3BvdmVyXT1cInBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2FuUHJpbnRdPVwiZmlsZS5UeXBlIHwgaXNJbWFnZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwiW2ZpbGVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVGdWxsU2NyZWVuXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpIHx8ICdzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Eb3dubG9hZEZpbGUoZmlsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImRvd25sb2FkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnRG93bmxvYWQnIHwgYmJiVHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwiZmlsZURvd25sb2FkaW5nXCIgW3NpemVdPVwiJ3MnXCI+PC9mZC1idXN5LWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICA8L2ZkLXBvcG92ZXI+XHJcbiAgICAgICAgfSB9XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cclxuICAgICAgICAgICAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcmVtXCI+XHJcbiAgICAgICAgICAgICAgICA8YnN1LW1hc2sgW3NpemVdPVwiJ3MnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiPjwvYnN1LW1hc2s+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBpZiAoKGZpbGVDb3VudCQgfCBhc3luYykgfCBjYW5VcGxvYWRGaWxlOiBtYXhGaWxlQ291bnQ6KGRpc2FibGUkIHwgYXN5bmMpPT09dHJ1ZToocmVhZG9ubHkkIHxcclxuICAgICAgICAgICAgYXN5bmMpPT09dHJ1ZSkge1xyXG4gICAgICAgICAgICA8ZmQtZmlsZS11cGxvYWRlclxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpbmVhci11cGxvYWRcIlxyXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiJ2xpbmVhcl8nICsgaWRcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYnV0dG9uTGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtidXR0b25BcmlhTGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwidmFsaWRFeHRlbnNpb25cIlxyXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm1heEZpbGVDb3VudCA+IDEgfHwgU2V0dGluZy5Jc011bHRpU2VsZWN0XCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgPjwvZmQtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Renderer2, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { MoReportValuePipe, PictureFieldSourcePipe, ReportViewBaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import Splide from '@splidejs/splide';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
8
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
9
|
+
import * as i4 from "@fundamental-ngx/core/card";
|
|
10
|
+
export class UiReportCarouselViewComponent extends ReportViewBaseComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.type = 'full';
|
|
14
|
+
this.carouselCls = 'carousel-full';
|
|
15
|
+
this.width = window.innerWidth;
|
|
16
|
+
this.height = this.width / 2;
|
|
17
|
+
this.rval = inject(MoReportValuePipe);
|
|
18
|
+
this._picFieldSrc = inject(PictureFieldSourcePipe);
|
|
19
|
+
this._renderer2 = inject(Renderer2);
|
|
20
|
+
this._el = inject(ElementRef);
|
|
21
|
+
this._router = inject(Router);
|
|
22
|
+
}
|
|
23
|
+
get dom() {
|
|
24
|
+
return this.splideElRef?.nativeElement;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
super.ngOnInit();
|
|
28
|
+
this.type = this.viewSetting.SliderType$Caption || 'full';
|
|
29
|
+
this._width = this.viewSetting.WidthSize;
|
|
30
|
+
}
|
|
31
|
+
ngAfterViewInit() {
|
|
32
|
+
this._init();
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
this._splide.refresh();
|
|
35
|
+
}, 200);
|
|
36
|
+
}
|
|
37
|
+
onRefresh() {
|
|
38
|
+
this._splide.refresh();
|
|
39
|
+
}
|
|
40
|
+
_init() {
|
|
41
|
+
this._renderer2.setAttribute(this.dom, 'data-splide', '{"direction":"rtl"}');
|
|
42
|
+
switch (this.type) {
|
|
43
|
+
case 'full':
|
|
44
|
+
this.carouselCls = 'carousel-full';
|
|
45
|
+
this._fullMount();
|
|
46
|
+
break;
|
|
47
|
+
case 'multiple':
|
|
48
|
+
this.carouselCls = 'carousel-multiple';
|
|
49
|
+
this._multipleMount();
|
|
50
|
+
break;
|
|
51
|
+
case 'small':
|
|
52
|
+
this.carouselCls = 'carousel-small';
|
|
53
|
+
this._smallMount();
|
|
54
|
+
break;
|
|
55
|
+
case 'single':
|
|
56
|
+
this.carouselCls = 'carousel-single';
|
|
57
|
+
this._singleMount();
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
this._renderer2.addClass(this.splideElRef?.nativeElement, this.carouselCls);
|
|
61
|
+
}
|
|
62
|
+
_fullMount() {
|
|
63
|
+
this._splide = new Splide(this.dom, {
|
|
64
|
+
perPage: 1,
|
|
65
|
+
rewind: true,
|
|
66
|
+
direction: 'rtl',
|
|
67
|
+
type: 'loop',
|
|
68
|
+
gap: 0,
|
|
69
|
+
arrows: true,
|
|
70
|
+
pagination: false,
|
|
71
|
+
autoplay: true,
|
|
72
|
+
speed: 1000
|
|
73
|
+
}).mount();
|
|
74
|
+
}
|
|
75
|
+
_singleMount() {
|
|
76
|
+
this._splide = new Splide(this.dom, {
|
|
77
|
+
perPage: 1,
|
|
78
|
+
rewind: true,
|
|
79
|
+
type: 'loop',
|
|
80
|
+
direction: 'rtl',
|
|
81
|
+
gap: 0,
|
|
82
|
+
padding: 25,
|
|
83
|
+
arrows: true,
|
|
84
|
+
pagination: false,
|
|
85
|
+
breakpoints: {
|
|
86
|
+
768: {
|
|
87
|
+
perPage: 1
|
|
88
|
+
},
|
|
89
|
+
991: {
|
|
90
|
+
perPage: 2
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}).mount();
|
|
94
|
+
}
|
|
95
|
+
_multipleMount() {
|
|
96
|
+
this._splide = new Splide(this.dom, {
|
|
97
|
+
perPage: 4,
|
|
98
|
+
rewind: true,
|
|
99
|
+
direction: 'rtl',
|
|
100
|
+
type: 'loop',
|
|
101
|
+
gap: 16,
|
|
102
|
+
padding: 0,
|
|
103
|
+
arrows: true,
|
|
104
|
+
pagination: false,
|
|
105
|
+
breakpoints: {
|
|
106
|
+
768: {
|
|
107
|
+
perPage: 2
|
|
108
|
+
},
|
|
109
|
+
991: {
|
|
110
|
+
perPage: 3
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}).mount();
|
|
114
|
+
}
|
|
115
|
+
_smallMount() {
|
|
116
|
+
this._splide = new Splide(this.dom, {
|
|
117
|
+
perPage: 9,
|
|
118
|
+
rewind: true,
|
|
119
|
+
type: 'loop',
|
|
120
|
+
direction: 'rtl',
|
|
121
|
+
gap: 16,
|
|
122
|
+
padding: 0,
|
|
123
|
+
arrows: true,
|
|
124
|
+
pagination: false,
|
|
125
|
+
breakpoints: {
|
|
126
|
+
768: {
|
|
127
|
+
perPage: 5
|
|
128
|
+
},
|
|
129
|
+
991: {
|
|
130
|
+
perPage: 7
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}).mount();
|
|
134
|
+
}
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiReportCarouselViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiReportCarouselViewComponent, selector: "bsu-ui-report-carousel-view", host: { properties: { "style.width": "this._width" } }, viewQueries: [{ propertyName: "splideElRef", first: true, predicate: ["splide"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"splide\" #splide>\r\n <div class=\"splide__track\">\r\n <ul class=\"splide__list\">\r\n @for(mo of moDataList;track mo.Id){\r\n <li class=\"splide__slide\">\r\n <ng-container\r\n *ngTemplateOutlet=\"viewSetting.RowOlgo?.Selector ? dynamicTpl : defaultTpl\"\r\n ></ng-container>\r\n <ng-template #dynamicTpl>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [coloringRow]=\"viewSetting?.ColoringRow\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [setting]=\"viewSetting\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n </ng-template>\r\n <ng-template #defaultTpl>\r\n <fd-card cardType=\"banner\" style=\"height: 300px\">\r\n <fd-card-media>\r\n <div fd-card-media-content-container [legendColor]=\"13\">\r\n <div fd-card-media-heading [level]=\"2\">Get Ready for the AI Learning Days!</div>\r\n <p fd-card-media-text>\r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. At aperiam in incidunt\r\n distinctio, ad blanditiis autem voluptatibus dolore labore eos harum placeat\r\n sapiente dolor ex illo ipsa quod excepturi doloribus!\r\n </p>\r\n <button fd-button fdType=\"emphasized\">Register</button>\r\n </div>\r\n <div fd-card-media-image-container>\r\n <img\r\n fd-card-media-image\r\n src=\"https://picsum.photos/298/300?nature/1\"\r\n alt=\"randomly generated image from Picsum\"\r\n style=\"max-height: 300px\"\r\n />\r\n </div>\r\n </fd-card-media>\r\n </fd-card>\r\n </ng-template>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i4.CardMediaComponent, selector: "fd-card-media", inputs: ["ariaRoleDescription", "hasPadding", "shellColor", "legendColor"] }, { kind: "directive", type: i4.CardMediaImageDirective, selector: "[fd-card-media-image]" }, { kind: "directive", type: i4.CardMediaImageContainerDirective, selector: "[fd-card-media-image-container]" }, { kind: "directive", type: i4.CardMediaContentContainerDirective, selector: "[fd-card-media-content-container]", inputs: ["isOverlay", "shellColor", "legendColor"] }, { kind: "directive", type: i4.CardMediaHeadingDirective, selector: "[fd-card-media-heading]", inputs: ["id", "level"] }, { kind: "directive", type: i4.CardMediaTextDirective, selector: "[fd-card-media-text]" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiReportCarouselViewComponent, decorators: [{
|
|
139
|
+
type: Component,
|
|
140
|
+
args: [{ selector: 'bsu-ui-report-carousel-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"splide\" #splide>\r\n <div class=\"splide__track\">\r\n <ul class=\"splide__list\">\r\n @for(mo of moDataList;track mo.Id){\r\n <li class=\"splide__slide\">\r\n <ng-container\r\n *ngTemplateOutlet=\"viewSetting.RowOlgo?.Selector ? dynamicTpl : defaultTpl\"\r\n ></ng-container>\r\n <ng-template #dynamicTpl>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [coloringRow]=\"viewSetting?.ColoringRow\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [setting]=\"viewSetting\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n </ng-template>\r\n <ng-template #defaultTpl>\r\n <fd-card cardType=\"banner\" style=\"height: 300px\">\r\n <fd-card-media>\r\n <div fd-card-media-content-container [legendColor]=\"13\">\r\n <div fd-card-media-heading [level]=\"2\">Get Ready for the AI Learning Days!</div>\r\n <p fd-card-media-text>\r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. At aperiam in incidunt\r\n distinctio, ad blanditiis autem voluptatibus dolore labore eos harum placeat\r\n sapiente dolor ex illo ipsa quod excepturi doloribus!\r\n </p>\r\n <button fd-button fdType=\"emphasized\">Register</button>\r\n </div>\r\n <div fd-card-media-image-container>\r\n <img\r\n fd-card-media-image\r\n src=\"https://picsum.photos/298/300?nature/1\"\r\n alt=\"randomly generated image from Picsum\"\r\n style=\"max-height: 300px\"\r\n />\r\n </div>\r\n </fd-card-media>\r\n </fd-card>\r\n </ng-template>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}\n"] }]
|
|
141
|
+
}], propDecorators: { splideElRef: [{
|
|
142
|
+
type: ViewChild,
|
|
143
|
+
args: ['splide', { static: true, read: ElementRef }]
|
|
144
|
+
}], _width: [{
|
|
145
|
+
type: HostBinding,
|
|
146
|
+
args: ['style.width']
|
|
147
|
+
}] } });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktcmVwb3J0LWNhcm91c2VsLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktcmVwb3J0LWNhcm91c2VsLXZpZXcvdWktcmVwb3J0LWNhcm91c2VsLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktcmVwb3J0LWNhcm91c2VsLXZpZXcvdWktcmVwb3J0LWNhcm91c2VsLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFFWCxTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFFMUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVN0QyxNQUFNLE9BQU8sNkJBQ1QsU0FBUSx1QkFBcUQ7SUFSakU7O1FBY0ksU0FBSSxHQUFlLE1BQU0sQ0FBQztRQUUxQixnQkFBVyxHQUFHLGVBQWUsQ0FBQztRQUU5QixVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFLeEIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2QsaUJBQVksR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLFFBQUcsR0FB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QUNuQyxLQUFLOzhCQU13QyxXQUFXO3NCQUFuRSxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDM0IsTUFBTTtzQkFBakMsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgT25Jbml0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRWpyYXlPbGdvLFxyXG4gICAgTW9SZXBvcnRWYWx1ZVBpcGUsXHJcbiAgICBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxyXG4gICAgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsXHJcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZ1xyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IFNwbGlkZSBmcm9tICdAc3BsaWRlanMvc3BsaWRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktcmVwb3J0LWNhcm91c2VsLXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXJlcG9ydC1jYXJvdXNlbC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXJlcG9ydC1jYXJvdXNlbC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVJlcG9ydENhcm91c2VsVmlld0NvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaVJlcG9ydENhcm91c2VsVmlld1NldHRpbmdzPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gICAgQFZpZXdDaGlsZCgnc3BsaWRlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgc3BsaWRlRWxSZWY6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSBfd2lkdGg7XHJcblxyXG4gICAgdHlwZTogU2xpZGVyVHlwZSA9ICdmdWxsJztcclxuXHJcbiAgICBjYXJvdXNlbENscyA9ICdjYXJvdXNlbC1mdWxsJztcclxuXHJcbiAgICB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgaGVpZ2h0ID0gdGhpcy53aWR0aCAvIDI7XHJcbiAgICBnZXQgZG9tKCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zcGxpZGVFbFJlZj8ubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuICAgIF9zcGxpZGU6IHVuZGVmaW5lZCB8IGFueTtcclxuICAgIHJ2YWwgPSBpbmplY3QoTW9SZXBvcnRWYWx1ZVBpcGUpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9waWNGaWVsZFNyYyA9IGluamVjdChQaWN0dXJlRmllbGRTb3VyY2VQaXBlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy52aWV3U2V0dGluZy5TbGlkZXJUeXBlJENhcHRpb24gfHwgJ2Z1bGwnO1xyXG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy52aWV3U2V0dGluZy5XaWR0aFNpemU7XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faW5pdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGxpZGUucmVmcmVzaCgpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICB9XHJcbiAgICBvblJlZnJlc2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3BsaWRlLnJlZnJlc2goKTtcclxuICAgIH1cclxuICAgIF9pbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRBdHRyaWJ1dGUodGhpcy5kb20sICdkYXRhLXNwbGlkZScsICd7XCJkaXJlY3Rpb25cIjpcInJ0bFwifScpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Z1bGwnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJvdXNlbENscyA9ICdjYXJvdXNlbC1mdWxsJztcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Z1bGxNb3VudCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ211bHRpcGxlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxDbHMgPSAnY2Fyb3VzZWwtbXVsdGlwbGUnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbXVsdGlwbGVNb3VudCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NtYWxsJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxDbHMgPSAnY2Fyb3VzZWwtc21hbGwnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc21hbGxNb3VudCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NpbmdsZSc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcm91c2VsQ2xzID0gJ2Nhcm91c2VsLXNpbmdsZSc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaW5nbGVNb3VudCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLnNwbGlkZUVsUmVmPy5uYXRpdmVFbGVtZW50LCB0aGlzLmNhcm91c2VsQ2xzKTtcclxuICAgIH1cclxuICAgIF9mdWxsTW91bnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3BsaWRlID0gbmV3IFNwbGlkZSh0aGlzLmRvbSwge1xyXG4gICAgICAgICAgICBwZXJQYWdlOiAxLFxyXG4gICAgICAgICAgICByZXdpbmQ6IHRydWUsXHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogJ3J0bCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdsb29wJyxcclxuICAgICAgICAgICAgZ2FwOiAwLFxyXG4gICAgICAgICAgICBhcnJvd3M6IHRydWUsXHJcbiAgICAgICAgICAgIHBhZ2luYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc3BlZWQ6IDEwMDBcclxuICAgICAgICB9KS5tb3VudCgpO1xyXG4gICAgfVxyXG4gICAgX3NpbmdsZU1vdW50KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NwbGlkZSA9IG5ldyBTcGxpZGUodGhpcy5kb20sIHtcclxuICAgICAgICAgICAgcGVyUGFnZTogMSxcclxuICAgICAgICAgICAgcmV3aW5kOiB0cnVlLFxyXG4gICAgICAgICAgICB0eXBlOiAnbG9vcCcsXHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogJ3J0bCcsXHJcbiAgICAgICAgICAgIGdhcDogMCxcclxuICAgICAgICAgICAgcGFkZGluZzogMjUsXHJcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBwZXJQYWdlOiAxXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgOTkxOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGVyUGFnZTogMlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkubW91bnQoKTtcclxuICAgIH1cclxuICAgIF9tdWx0aXBsZU1vdW50KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NwbGlkZSA9IG5ldyBTcGxpZGUodGhpcy5kb20sIHtcclxuICAgICAgICAgICAgcGVyUGFnZTogNCxcclxuICAgICAgICAgICAgcmV3aW5kOiB0cnVlLFxyXG4gICAgICAgICAgICBkaXJlY3Rpb246ICdydGwnLFxyXG4gICAgICAgICAgICB0eXBlOiAnbG9vcCcsXHJcbiAgICAgICAgICAgIGdhcDogMTYsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBwZXJQYWdlOiAyXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgOTkxOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGVyUGFnZTogM1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkubW91bnQoKTtcclxuICAgIH1cclxuICAgIF9zbWFsbE1vdW50KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NwbGlkZSA9IG5ldyBTcGxpZGUodGhpcy5kb20sIHtcclxuICAgICAgICAgICAgcGVyUGFnZTogOSxcclxuICAgICAgICAgICAgcmV3aW5kOiB0cnVlLFxyXG4gICAgICAgICAgICB0eXBlOiAnbG9vcCcsXHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogJ3J0bCcsXHJcbiAgICAgICAgICAgIGdhcDogMTYsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBwZXJQYWdlOiA1XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgOTkxOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGVyUGFnZTogN1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkubW91bnQoKTtcclxuICAgIH1cclxufVxyXG5pbnRlcmZhY2UgVWlSZXBvcnRDYXJvdXNlbFZpZXdTZXR0aW5ncyBleHRlbmRzIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIHtcclxuICAgIFJvd09sZ286IEVqcmF5T2xnbztcclxuICAgIFNsaWRlclR5cGUkQ2FwdGlvbjogU2xpZGVyVHlwZTtcclxuICAgIFdpZHRoU2l6ZTogbnVtYmVyO1xyXG4gICAgSGVpZ2h0U2l6ZTogbnVtYmVyO1xyXG4gICAgVGl0bGVDb2x1bW46IHN0cmluZztcclxuICAgIFN1YnRpdGxlQ29sdW1uOiBzdHJpbmc7XHJcbiAgICBQaWN0dXJlQ29sdW1uOiBzdHJpbmc7XHJcbn1cclxudHlwZSBTbGlkZXJUeXBlID0gJ2Z1bGwnIHwgJ211bHRpcGxlJyB8ICdzaW5nbGUnIHwgJ3NtYWxsJyB8IHVuZGVmaW5lZDtcclxuIiwiPGRpdiBjbGFzcz1cInNwbGlkZVwiICNzcGxpZGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3BsaWRlX190cmFja1wiPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInNwbGlkZV9fbGlzdFwiPlxyXG4gICAgICAgICAgICBAZm9yKG1vIG9mIG1vRGF0YUxpc3Q7dHJhY2sgbW8uSWQpe1xyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJzcGxpZGVfX3NsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3U2V0dGluZy5Sb3dPbGdvPy5TZWxlY3RvciA/IGR5bmFtaWNUcGwgOiBkZWZhdWx0VHBsXCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY1RwbD5cclxuICAgICAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwidmlld1NldHRpbmcuUm93T2xnb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0xhc3RDaGlsZEdyb3VwXT1cIm1vLiRJc0xhc3RDaGlsZEdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwU3VtbWFyeV09XCJncm91cFN1bW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1ZpZXdCdXR0b25dPVwic2hvd1ZpZXdCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lRWRpdFdpdGhvdXRTZWxlY3Rpb25dPVwiaW5saW5lRWRpdFdpdGhvdXRTZWxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Um93TnVtYmVyXT1cImNvbnRleHRWaWV3Py5HcmlkX1Nob3dSb3dOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uQ29tcG9uZW50c109XCJ2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cyB8fCBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpcnR5Q29sdW1uc109XCJtby4kRGlydHlDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwidmlld1NldHRpbmc/LkF0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXRhaWxzVGV4dEZ1bmN0aW9uXT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dEZ1bmN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbHNDb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcmluZ1Jvd109XCJ2aWV3U2V0dGluZz8uQ29sb3JpbmdSb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwibW8uJFBhcmVudD8uJEV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNDb3VudF09XCJjb2x1bW5zQ291bnQgLSBkZXRhaWxzQ29sdW1ucy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHRyYVJlbGF0aW9uXT1cImV4dHJhUmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2V0dGluZ109XCJ2aWV3U2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBmaWx0ZXJDb2x1bW5zQnlEZXRhaWxzOiBkZXRhaWxzQ29sdW1uczpyb3dJbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChldmVudHMpPVwib25PbGdvRXZlbnRzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUcGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWNhcmQgY2FyZFR5cGU9XCJiYW5uZXJcIiBzdHlsZT1cImhlaWdodDogMzAwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWNhcmQtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtbWVkaWEtY29udGVudC1jb250YWluZXIgW2xlZ2VuZENvbG9yXT1cIjEzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1jYXJkLW1lZGlhLWhlYWRpbmcgW2xldmVsXT1cIjJcIj5HZXQgUmVhZHkgZm9yIHRoZSBBSSBMZWFybmluZyBEYXlzITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGZkLWNhcmQtbWVkaWEtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQXQgYXBlcmlhbSBpbiBpbmNpZHVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdGlvLCBhZCBibGFuZGl0aWlzIGF1dGVtIHZvbHVwdGF0aWJ1cyBkb2xvcmUgbGFib3JlIGVvcyBoYXJ1bSBwbGFjZWF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhcGllbnRlIGRvbG9yIGV4IGlsbG8gaXBzYSBxdW9kIGV4Y2VwdHVyaSBkb2xvcmlidXMhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cImVtcGhhc2l6ZWRcIj5SZWdpc3RlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtbWVkaWEtaW1hZ2UtY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtY2FyZC1tZWRpYS1pbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3BpY3N1bS5waG90b3MvMjk4LzMwMD9uYXR1cmUvMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cInJhbmRvbWx5IGdlbmVyYXRlZCBpbWFnZSBmcm9tIFBpY3N1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1jYXJkLW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|