keevo-components 1.8.94 → 1.8.95

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.
@@ -1,95 +1,27 @@
1
- import { Component, HostListener, Input } from '@angular/core';
1
+ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "primeng/api";
5
- import * as i3 from "primeng/carousel";
6
- import * as i4 from "primeng/skeleton";
3
+ import * as i1 from "primeng/api";
4
+ import * as i2 from "primeng/carousel";
7
5
  export class KvCarouselComponent {
8
6
  constructor() {
9
7
  this.carouselData = [];
10
- this.exibirCarousel = false;
11
- }
12
- ngOnInit() {
13
- this.tamanhoTela = window.innerWidth;
14
- this.listarCarousel();
15
- this.ImageSizeTake();
16
- }
17
- onWindowResize() {
18
- this.tamanhoTela = window.innerWidth;
19
- this.ImageSizeTake();
20
8
  }
21
9
  navigateToLink(link) {
22
10
  window.open(link, '_blank');
23
11
  }
24
- ImageSizeTake() {
25
- let collection = document.getElementsByClassName('image');
26
- let collectionSkeleton = document.getElementsByClassName('skeleton');
27
- let imageWidth = Number(collection.item(0)?.clientWidth);
28
- let imageWidthskeleton = Number(collectionSkeleton.item(0)?.clientWidth);
29
- if (isNaN(imageWidth))
30
- imageWidth = imageWidthskeleton;
31
- if (this.tamanhoTela < 1200)
32
- this.imageHeight = `${imageWidth / 3}px`;
33
- else
34
- this.imageHeight = '200px';
35
- }
36
- listarCarousel() {
37
- this.validarCarousel(this.carouselData);
38
- this.ImageSizeTake();
39
- this.exibirCarousel = true;
40
- // this.bannerServico.Selecionar(this.usuarioLogadoServico.GetUsuarioLogado().codCliente).subscribe({
41
- // next: (res: any) => {
42
- // this.validarCarousel(res);
43
- // },
44
- // error: (error) => {},
45
- // complete: () => {
46
- // this.ImageSizeTake();
47
- // this.exibirCarousel = true;
48
- // }
49
- // })
50
- }
51
- validarCarousel(res) {
52
- const isValidBanner = (banner, dataExpiracao) => {
53
- return banner != null && (new Date(dataExpiracao) > new Date() || dataExpiracao == null);
54
- };
55
- const getObjectUrl = (base64content) => {
56
- return URL.createObjectURL(getBlobFrom(base64content));
57
- };
58
- const getBlobFrom = (base64content) => {
59
- const binary = atob(base64content);
60
- const bytenumbers = new Uint8Array(binary.length);
61
- for (let i = 0; i < binary.length; i++) {
62
- bytenumbers[i] = binary.charCodeAt(i);
63
- }
64
- return new Blob([bytenumbers]);
65
- };
66
- let bannersValidos = [
67
- { banner: res?.arquivobanner1, dataExpiracao: res?.dataexpiracaobanner1 },
68
- { banner: res?.arquivobanner2, dataExpiracao: res?.dataexpiracaobanner2 },
69
- { banner: res?.arquivobanner3, dataExpiracao: res?.dataexpiracaobanner3 },
70
- { banner: res?.arquivobanner4, dataExpiracao: res?.dataexpiracaobanner4 }
71
- ];
72
- bannersValidos.forEach((bannerInfo) => {
73
- if (isValidBanner(bannerInfo.banner, bannerInfo.dataExpiracao)) {
74
- let img = { img: getObjectUrl(bannerInfo.banner) };
75
- this.carouselData.push(img);
76
- }
77
- });
78
- // let imgfixa: any = { img: 'https://work-assets.keevo.com.br/img/keex/banner_fixo_KeeX.png' };
79
- // this.carouselData.unshift(imgfixa);
12
+ getCarouselHeight() {
13
+ let divCarouselHeight = document.getElementById('carousel')?.offsetHeight;
14
+ console.log(divCarouselHeight, 'divCarouselHeight');
15
+ if (divCarouselHeight)
16
+ this.heightCarousel = divCarouselHeight;
80
17
  }
81
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvCarouselComponent, selector: "kv-carousel", inputs: { carouselData: "carouselData", exibirCarousel: "exibirCarousel" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, ngImport: i0, template: "<p-carousel\r\n [value]=\"carouselData\"\r\n [indicatorStyleClass]=\"'carousel-indicator'\"\r\n [showIndicators]=\"true\"\r\n [autoplayInterval]=\"5000\"\r\n [numVisible]=\"1\"\r\n [numScroll]=\"1\"\r\n [showNavigators]=\"false\"\r\n styleClass=\"carousel-container\"\r\n *ngIf=\"exibirCarousel\"\r\n>\r\n <ng-template let-banner pTemplate=\"item\">\r\n <div class=\"image h-full \" [style.height]=\"imageHeight\" >\r\n <img\r\n [src]=\"banner.img\"\r\n class=\"h-full w-full border-round-lg\"\r\n (click)=\"navigateToLink(banner.link)\" \r\n />\r\n </div>\r\n </ng-template>\r\n</p-carousel>\r\n\r\n<div\r\n class=\"m-2 skeleton\"\r\n [style.height]=\"imageHeight\"\r\n *ngIf=\"!exibirCarousel\"\r\n>\r\n <p-skeleton styleClass=\"h-full \"></p-skeleton>\r\n</div>", styles: ["::ng-deep .carousel-container{position:relative;top:1px;overflow:hidden}::ng-deep .p-carousel .p-carousel-indicators{padding:0!important;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}::ng-deep .carousel-indicator{width:17px!important;height:4px!important;background-color:#eeeeeed0;margin:-3px!important;padding:0!important}::ng-deep .carousel-indicator:hover{background-color:#efefef}button.p-carousel-indicator.p-link{background-color:#f0f8ff}::ng-deep .border-round-lg{border-radius:20px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Carousel, selector: "p-carousel", inputs: ["page", "numVisible", "numScroll", "responsiveOptions", "orientation", "verticalViewPortHeight", "contentClass", "indicatorsContentClass", "indicatorsContentStyle", "indicatorStyleClass", "indicatorStyle", "value", "circular", "showIndicators", "showNavigators", "autoplayInterval", "style", "styleClass"], outputs: ["onPage"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }] }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvCarouselComponent, selector: "kv-carousel", inputs: { carouselData: "carouselData" }, ngImport: i0, template: "<p-carousel id=\"carousel\" [value]=\"carouselData\" [indicatorStyleClass]=\"'carousel-indicator'\" [autoplayInterval]=\"5000\" \r\n [showIndicators]=\"true\" [showNavigators]=\"false\" [numVisible]=\"1\" [numScroll]=\"1\" [circular]=\"true\" styleClass=\"h-full\">\r\n>\r\n <ng-template pTemplate=\"item\" let-banner class=\"justify-content-center align-items-center \">\r\n <img [src]=\"banner.img\" class=\"w-full border-round\" [style.height.px]=\"heightCarousel\"\r\n (click)=\"navigateToLink(banner.link)\">\r\n </ng-template>\r\n</p-carousel>\r\n\r\n{{getCarouselHeight()}}", styles: ["::ng-deep .p-carousel-indicators{position:absolute;left:50%;transform:translate(-50%);bottom:-1rem}::ng-deep .carousel-indicator{width:15px!important;height:4px!important;margin:-3px!important;padding:0!important;background-color:#eeeeeed0}::ng-deep .carousel-indicator:hover{background-color:#efefef}button.p-carousel-indicator.p-link{background-color:#f0f8ff!important}::ng-deep .p-carousel .p-carousel-content{overflow:hidden!important;position:relative}::ng-deep .border-round{border-radius:20px!important}\n"], dependencies: [{ kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.Carousel, selector: "p-carousel", inputs: ["page", "numVisible", "numScroll", "responsiveOptions", "orientation", "verticalViewPortHeight", "contentClass", "indicatorsContentClass", "indicatorsContentStyle", "indicatorStyleClass", "indicatorStyle", "value", "circular", "showIndicators", "showNavigators", "autoplayInterval", "style", "styleClass"], outputs: ["onPage"] }] }); }
83
20
  }
84
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCarouselComponent, decorators: [{
85
22
  type: Component,
86
- args: [{ selector: 'kv-carousel', template: "<p-carousel\r\n [value]=\"carouselData\"\r\n [indicatorStyleClass]=\"'carousel-indicator'\"\r\n [showIndicators]=\"true\"\r\n [autoplayInterval]=\"5000\"\r\n [numVisible]=\"1\"\r\n [numScroll]=\"1\"\r\n [showNavigators]=\"false\"\r\n styleClass=\"carousel-container\"\r\n *ngIf=\"exibirCarousel\"\r\n>\r\n <ng-template let-banner pTemplate=\"item\">\r\n <div class=\"image h-full \" [style.height]=\"imageHeight\" >\r\n <img\r\n [src]=\"banner.img\"\r\n class=\"h-full w-full border-round-lg\"\r\n (click)=\"navigateToLink(banner.link)\" \r\n />\r\n </div>\r\n </ng-template>\r\n</p-carousel>\r\n\r\n<div\r\n class=\"m-2 skeleton\"\r\n [style.height]=\"imageHeight\"\r\n *ngIf=\"!exibirCarousel\"\r\n>\r\n <p-skeleton styleClass=\"h-full \"></p-skeleton>\r\n</div>", styles: ["::ng-deep .carousel-container{position:relative;top:1px;overflow:hidden}::ng-deep .p-carousel .p-carousel-indicators{padding:0!important;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}::ng-deep .carousel-indicator{width:17px!important;height:4px!important;background-color:#eeeeeed0;margin:-3px!important;padding:0!important}::ng-deep .carousel-indicator:hover{background-color:#efefef}button.p-carousel-indicator.p-link{background-color:#f0f8ff}::ng-deep .border-round-lg{border-radius:20px!important}\n"] }]
23
+ args: [{ selector: 'kv-carousel', template: "<p-carousel id=\"carousel\" [value]=\"carouselData\" [indicatorStyleClass]=\"'carousel-indicator'\" [autoplayInterval]=\"5000\" \r\n [showIndicators]=\"true\" [showNavigators]=\"false\" [numVisible]=\"1\" [numScroll]=\"1\" [circular]=\"true\" styleClass=\"h-full\">\r\n>\r\n <ng-template pTemplate=\"item\" let-banner class=\"justify-content-center align-items-center \">\r\n <img [src]=\"banner.img\" class=\"w-full border-round\" [style.height.px]=\"heightCarousel\"\r\n (click)=\"navigateToLink(banner.link)\">\r\n </ng-template>\r\n</p-carousel>\r\n\r\n{{getCarouselHeight()}}", styles: ["::ng-deep .p-carousel-indicators{position:absolute;left:50%;transform:translate(-50%);bottom:-1rem}::ng-deep .carousel-indicator{width:15px!important;height:4px!important;margin:-3px!important;padding:0!important;background-color:#eeeeeed0}::ng-deep .carousel-indicator:hover{background-color:#efefef}button.p-carousel-indicator.p-link{background-color:#f0f8ff!important}::ng-deep .p-carousel .p-carousel-content{overflow:hidden!important;position:relative}::ng-deep .border-round{border-radius:20px!important}\n"] }]
87
24
  }], ctorParameters: () => [], propDecorators: { carouselData: [{
88
25
  type: Input
89
- }], exibirCarousel: [{
90
- type: Input
91
- }], onWindowResize: [{
92
- type: HostListener,
93
- args: ['window:resize', ['$event']]
94
26
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QjtRQU5TLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQVksS0FBSyxDQUFDO0lBS3pCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLFVBQVUsR0FBUSxRQUFRLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxrQkFBa0IsR0FBUSxRQUFRLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFF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LFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxnR0FBZ0c7UUFDaEcsdUNBQXVDO0lBQ3pDLENBQUM7OEdBOUZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG1NQ1poQyxxMEJBNEJNOzsyRkRoQk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7d0RBTWQsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQWNOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWNhcm91c2VsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWNhcm91c2VsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2Q2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjYXJvdXNlbERhdGE6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgZXhpYmlyQ2Fyb3VzZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgdGFtYW5ob1RlbGEhOiBudW1iZXI7XHJcbiAgaW1hZ2VIZWlnaHQhOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50YW1hbmhvVGVsYSA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgdGhpcy5saXN0YXJDYXJvdXNlbCgpO1xyXG4gICAgdGhpcy5JbWFnZVNpemVUYWtlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMudGFtYW5ob1RlbGEgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIHRoaXMuSW1hZ2VTaXplVGFrZSgpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0xpbmsobGluazogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3BlbihsaW5rLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBJbWFnZVNpemVUYWtlKCkge1xyXG4gICAgbGV0IGNvbGxlY3Rpb246IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ltYWdlJyk7XHJcbiAgICBsZXQgY29sbGVjdGlvblNrZWxldG9uOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdza2VsZXRvbicpO1xyXG5cclxuICAgIGxldCBpbWFnZVdpZHRoID0gTnVtYmVyKGNvbGxlY3Rpb24uaXRlbSgwKT8uY2xpZW50V2lkdGgpO1xyXG4gICAgbGV0IGltYWdlV2lkdGhza2VsZXRvbiA9IE51bWJlcihjb2xsZWN0aW9uU2tlbGV0b24uaXRlbSgwKT8uY2xpZW50V2lkdGgpO1xyXG5cclxuICAgIGlmIChpc05hTihpbWFnZVdpZHRoKSkgaW1hZ2VXaWR0aCA9IGltYWdlV2lkdGhza2VsZXRvblxyXG5cclxuICAgIGlmICh0aGlzLnRhbWFuaG9UZWxhIDwgMTIwMClcclxuICAgICAgdGhpcy5pbWFnZUhlaWdodCA9IGAke2ltYWdlV2lkdGggLyAzfXB4YDtcclxuICAgIGVsc2UgdGhpcy5pbWFnZUhlaWdodCA9ICcyMDBweCc7XHJcbiAgfVxyXG5cclxuICBsaXN0YXJDYXJvdXNlbCgpIHtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXJDYXJvdXNlbCh0aGlzLmNhcm91c2VsRGF0YSk7XHJcbiAgICB0aGlzLkltYWdlU2l6ZVRha2UoKTtcclxuICAgIHRoaXMuZXhpYmlyQ2Fyb3VzZWwgPSB0cnVlO1xyXG5cclxuICAgIC8vIHRoaXMuYmFubmVyU2Vydmljby5TZWxlY2lvbmFyKHRoaXMudXN1YXJpb0xvZ2Fkb1NlcnZpY28uR2V0VXN1YXJpb0xvZ2FkbygpLmNvZENsaWVudGUpLnN1YnNjcmliZSh7XHJcbiAgICAvLyAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMudmFsaWRhckNhcm91c2VsKHJlcyk7XHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIGVycm9yOiAoZXJyb3IpID0+IHt9LFxyXG4gICAgLy8gICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuSW1hZ2VTaXplVGFrZSgpO1xyXG4gICAgLy8gICAgIHRoaXMuZXhpYmlyQ2Fyb3VzZWwgPSB0cnVlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KSBcclxuICB9XHJcblxyXG4gIHZhbGlkYXJDYXJvdXNlbChyZXM6IGFueSkge1xyXG4gICAgY29uc3QgaXNWYWxpZEJhbm5lciA9IChiYW5uZXI6IGFueSwgZGF0YUV4cGlyYWNhbzogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBiYW5uZXIgIT0gbnVsbCAmJiAobmV3IERhdGUoZGF0YUV4cGlyYWNhbykgPiBuZXcgRGF0ZSgpIHx8IGRhdGFFeHBpcmFjYW8gPT0gbnVsbCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGdldE9iamVjdFVybCA9IChiYXNlNjRjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgICByZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTChnZXRCbG9iRnJvbShiYXNlNjRjb250ZW50KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGdldEJsb2JGcm9tID0gKGJhc2U2NGNvbnRlbnQ6IHN0cmluZyk6IEJsb2IgPT4ge1xyXG4gICAgICBjb25zdCBiaW5hcnkgPSBhdG9iKGJhc2U2NGNvbnRlbnQpO1xyXG4gICAgICBjb25zdCBieXRlbnVtYmVycyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeS5sZW5ndGgpO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5hcnkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBieXRlbnVtYmVyc1tpXSA9IGJpbmFyeS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV3IEJsb2IoW2J5dGVudW1iZXJzXSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBiYW5uZXJzVmFsaWRvcyA9IFtcclxuICAgICAgeyBiYW5uZXI6IHJlcz8uYXJxdWl2b2Jhbm5lcjEsIGRhdGFFeHBpcmFjYW86IHJlcz8uZGF0YWV4cGlyYWNhb2Jhbm5lcjEgfSxcclxuICAgICAgeyBiYW5uZXI6IHJlcz8uYXJxdWl2b2Jhbm5lcjIsIGRhdGFFeHBpcmFjYW86IHJlcz8uZGF0YWV4cGlyYWNhb2Jhbm5lcjIgfSxcclxuICAgICAgeyBiYW5uZXI6IHJlcz8uYXJxdWl2b2Jhbm5lcjMsIGRhdGFFeHBpcmFjYW86IHJlcz8uZGF0YWV4cGlyYWNhb2Jhbm5lcjMgfSxcclxuICAgICAgeyBiYW5uZXI6IHJlcz8uYXJxdWl2b2Jhbm5lcjQsIGRhdGFFeHBpcmFjYW86IHJlcz8uZGF0YWV4cGlyYWNhb2Jhbm5lcjQgfVxyXG4gICAgXTtcclxuXHJcbiAgICBiYW5uZXJzVmFsaWRvcy5mb3JFYWNoKChiYW5uZXJJbmZvOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGlzVmFsaWRCYW5uZXIoYmFubmVySW5mby5iYW5uZXIsIGJhbm5lckluZm8uZGF0YUV4cGlyYWNhbykpIHtcclxuICAgICAgICBsZXQgaW1nOiBhbnkgPSB7IGltZzogZ2V0T2JqZWN0VXJsKGJhbm5lckluZm8uYmFubmVyKSB9O1xyXG4gICAgICAgIHRoaXMuY2Fyb3VzZWxEYXRhLnB1c2goaW1nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gbGV0IGltZ2ZpeGE6IGFueSA9IHsgaW1nOiAnaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL2tlZXgvYmFubmVyX2ZpeG9fS2VlWC5wbmcnIH07XHJcbiAgICAvLyB0aGlzLmNhcm91c2VsRGF0YS51bnNoaWZ0KGltZ2ZpeGEpOyBcclxuICB9XHJcbn0iLCI8cC1jYXJvdXNlbFxyXG4gIFt2YWx1ZV09XCJjYXJvdXNlbERhdGFcIlxyXG4gIFtpbmRpY2F0b3JTdHlsZUNsYXNzXT1cIidjYXJvdXNlbC1pbmRpY2F0b3InXCJcclxuICBbc2hvd0luZGljYXRvcnNdPVwidHJ1ZVwiXHJcbiAgW2F1dG9wbGF5SW50ZXJ2YWxdPVwiNTAwMFwiXHJcbiAgW251bVZpc2libGVdPVwiMVwiXHJcbiAgW251bVNjcm9sbF09XCIxXCJcclxuICBbc2hvd05hdmlnYXRvcnNdPVwiZmFsc2VcIlxyXG4gIHN0eWxlQ2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIlxyXG4gICpuZ0lmPVwiZXhpYmlyQ2Fyb3VzZWxcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIGxldC1iYW5uZXIgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlIGgtZnVsbCBcIiBbc3R5bGUuaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtzcmNdPVwiYmFubmVyLmltZ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgYm9yZGVyLXJvdW5kLWxnXCJcclxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvTGluayhiYW5uZXIubGluaylcIiAgICAgICAgICBcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWNhcm91c2VsPlxyXG5cclxuPGRpdlxyXG4gIGNsYXNzPVwibS0yIHNrZWxldG9uXCJcclxuICBbc3R5bGUuaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCJcclxuICAqbmdJZj1cIiFleGliaXJDYXJvdXNlbFwiXHJcbj5cclxuICA8cC1za2VsZXRvbiBzdHlsZUNsYXNzPVwiaC1mdWxsIFwiPjwvcC1za2VsZXRvbj5cclxuPC9kaXY+Il19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZFLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFGUyxpQkFBWSxHQUFVLEVBQUUsQ0FBQztJQUVsQixDQUFDO0lBRWpCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFLRCxpQkFBaUI7UUFDZixJQUFJLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDO1FBRTFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUVuRCxJQUFJLGlCQUFpQjtZQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLENBQUM7OEdBcEJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDZGQ1BoQyxrbEJBU3VCOzsyRkRGVixtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTt3REFNZCxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtY2Fyb3VzZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3YtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZDYXJvdXNlbENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGNhcm91c2VsRGF0YTogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmF2aWdhdGVUb0xpbmsobGluazogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3BlbihsaW5rLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBoZWlnaHRDYXJvdXNlbCE6IG51bWJlcjtcclxuICB3aWR0aENhcm91c2VsITogbnVtYmVyO1xyXG5cclxuICBnZXRDYXJvdXNlbEhlaWdodCgpIHtcclxuICAgIGxldCBkaXZDYXJvdXNlbEhlaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJvdXNlbCcpPy5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgY29uc29sZS5sb2coZGl2Q2Fyb3VzZWxIZWlnaHQsICdkaXZDYXJvdXNlbEhlaWdodCcpXHJcblxyXG4gICAgaWYgKGRpdkNhcm91c2VsSGVpZ2h0KVxyXG4gICAgICB0aGlzLmhlaWdodENhcm91c2VsID0gZGl2Q2Fyb3VzZWxIZWlnaHQ7XHJcbiAgfVxyXG59IiwiPHAtY2Fyb3VzZWwgaWQ9XCJjYXJvdXNlbFwiIFt2YWx1ZV09XCJjYXJvdXNlbERhdGFcIiBbaW5kaWNhdG9yU3R5bGVDbGFzc109XCInY2Fyb3VzZWwtaW5kaWNhdG9yJ1wiIFthdXRvcGxheUludGVydmFsXT1cIjUwMDBcIiBcclxuICBbc2hvd0luZGljYXRvcnNdPVwidHJ1ZVwiICBbc2hvd05hdmlnYXRvcnNdPVwiZmFsc2VcIiBbbnVtVmlzaWJsZV09XCIxXCIgW251bVNjcm9sbF09XCIxXCIgW2NpcmN1bGFyXT1cInRydWVcIiBzdHlsZUNsYXNzPVwiaC1mdWxsXCI+XHJcbj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1iYW5uZXIgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgIDxpbWcgW3NyY109XCJiYW5uZXIuaW1nXCIgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLXJvdW5kXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRDYXJvdXNlbFwiXHJcbiAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvTGluayhiYW5uZXIubGluaylcIj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtY2Fyb3VzZWw+XHJcblxyXG57e2dldENhcm91c2VsSGVpZ2h0KCl9fSJdfQ==