rm-image-slider 19.0.0 → 21.0.0

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,69 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- const DESC = 'DESC', ASC = 'ASC';
4
- export class RmImageSliderService {
5
- constructor() { }
6
- isBase64(str) {
7
- var base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
8
- return base64regex.test(str);
9
- }
10
- base64FileExtension(str) {
11
- return str.substring('data:image/'.length, str.indexOf(';base64'));
12
- }
13
- // orderArray(arr = [], orderType = ASC) {
14
- // if (arr?.length && orderType) {
15
- // return arr.sort((ob1: any, ob2: any) => {
16
- // if (ob1['order'] === null || !ob1['order']) {
17
- // return 1;
18
- // } else if (ob2['order'] === null || !ob2['order']) {
19
- // return -1;
20
- // } else if (ob1['order'] > ob2['order']) {
21
- // if (orderType === DESC) {
22
- // return -1;
23
- // } else {
24
- // return 1;
25
- // }
26
- // } else if (ob1['order'] < ob2['order']) {
27
- // if (orderType === DESC) {
28
- // return 1;
29
- // } else {
30
- // return -1;
31
- // }
32
- // }
33
- // });
34
- // }
35
- // return arr;
36
- // }
37
- orderArray(arr = [], orderType = ASC) {
38
- if (arr?.length && orderType) {
39
- return arr.sort((ob1, ob2) => {
40
- // Handle potential undefined 'order' properties
41
- const order1 = ob1['order'];
42
- const order2 = ob2['order'];
43
- // Ensure consistent sorting for undefined/null 'order' values
44
- if (order1 === null || order1 === undefined) {
45
- return 1; // Place elements with undefined or null 'order' at the end
46
- }
47
- else if (order2 === null || order2 === undefined) {
48
- return -1; // Place elements with undefined or null 'order' at the beginning
49
- }
50
- else {
51
- // Apply ascending or descending order based on 'orderType'
52
- return orderType === DESC
53
- ? order2 - order1 // Reverse for descending order
54
- : order1 - order2; // Maintain for ascending order
55
- }
56
- });
57
- }
58
- return arr; // Return the original array if conditions are not met
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: RmImageSliderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
61
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: RmImageSliderService, providedIn: 'root' }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: RmImageSliderService, decorators: [{
64
- type: Injectable,
65
- args: [{
66
- providedIn: 'root',
67
- }]
68
- }], ctorParameters: () => [] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm0taW1hZ2Utc2xpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ybS1pbWFnZS1zbGlkZXIvc3JjL2xpYi9ybS1pbWFnZS1zbGlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQ2pCLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFLZCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxXQUFXLEdBQ2Isa0VBQWtFLENBQUM7UUFDckUsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLG9DQUFvQztJQUNwQyxnREFBZ0Q7SUFDaEQsc0RBQXNEO0lBQ3RELG9CQUFvQjtJQUNwQiw2REFBNkQ7SUFDN0QscUJBQXFCO0lBQ3JCLGtEQUFrRDtJQUNsRCxvQ0FBb0M7SUFDcEMsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGtEQUFrRDtJQUNsRCxvQ0FBb0M7SUFDcEMsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLFVBQVU7SUFDVixVQUFVO0lBQ1YsTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUosVUFBVSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLEdBQUc7UUFDbEMsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxHQUFRLEVBQUUsRUFBRTtnQkFDckMsZ0RBQWdEO2dCQUNoRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFNUIsOERBQThEO2dCQUM5RCxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLDJEQUEyRDtnQkFDdkUsQ0FBQztxQkFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNuRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsaUVBQWlFO2dCQUM5RSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sMkRBQTJEO29CQUMzRCxPQUFPLFNBQVMsS0FBSyxJQUFJO3dCQUN2QixDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQywrQkFBK0I7d0JBQ2pELENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsK0JBQStCO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsQ0FBQyxzREFBc0Q7SUFDcEUsQ0FBQzsrR0E1RFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IERFU0MgPSAnREVTQycsXHJcbiAgQVNDID0gJ0FTQyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm1JbWFnZVNsaWRlclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgaXNCYXNlNjQoc3RyOiBzdHJpbmcpIHtcclxuICAgIHZhciBiYXNlNjRyZWdleCA9XHJcbiAgICAgIC9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLztcclxuICAgIHJldHVybiBiYXNlNjRyZWdleC50ZXN0KHN0cik7XHJcbiAgfVxyXG5cclxuICBiYXNlNjRGaWxlRXh0ZW5zaW9uKHN0cjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygnZGF0YTppbWFnZS8nLmxlbmd0aCwgc3RyLmluZGV4T2YoJztiYXNlNjQnKSk7XHJcbiAgfVxyXG5cclxuICAvLyBvcmRlckFycmF5KGFyciA9IFtdLCBvcmRlclR5cGUgPSBBU0MpIHtcclxuICAvLyAgIGlmIChhcnI/Lmxlbmd0aCAmJiBvcmRlclR5cGUpIHtcclxuICAvLyAgICAgcmV0dXJuIGFyci5zb3J0KChvYjE6IGFueSwgb2IyOiBhbnkpID0+IHtcclxuICAvLyAgICAgICBpZiAob2IxWydvcmRlciddID09PSBudWxsIHx8ICFvYjFbJ29yZGVyJ10pIHtcclxuICAvLyAgICAgICAgIHJldHVybiAxO1xyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAob2IyWydvcmRlciddID09PSBudWxsIHx8ICFvYjJbJ29yZGVyJ10pIHtcclxuICAvLyAgICAgICAgIHJldHVybiAtMTtcclxuICAvLyAgICAgICB9IGVsc2UgaWYgKG9iMVsnb3JkZXInXSA+IG9iMlsnb3JkZXInXSkge1xyXG4gIC8vICAgICAgICAgaWYgKG9yZGVyVHlwZSA9PT0gREVTQykge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgLy8gICAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gMTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2UgaWYgKG9iMVsnb3JkZXInXSA8IG9iMlsnb3JkZXInXSkge1xyXG4gIC8vICAgICAgICAgaWYgKG9yZGVyVHlwZSA9PT0gREVTQykge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gMTtcclxuICAvLyAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgIHJldHVybiAtMTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIGFycjtcclxuICAvLyB9XHJcblxyXG4gIG9yZGVyQXJyYXkoYXJyID0gW10sIG9yZGVyVHlwZSA9IEFTQykge1xyXG4gICAgaWYgKGFycj8ubGVuZ3RoICYmIG9yZGVyVHlwZSkge1xyXG4gICAgICByZXR1cm4gYXJyLnNvcnQoKG9iMTogYW55LCBvYjI6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBwb3RlbnRpYWwgdW5kZWZpbmVkICdvcmRlcicgcHJvcGVydGllc1xyXG4gICAgICAgIGNvbnN0IG9yZGVyMSA9IG9iMVsnb3JkZXInXTtcclxuICAgICAgICBjb25zdCBvcmRlcjIgPSBvYjJbJ29yZGVyJ107XHJcblxyXG4gICAgICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IHNvcnRpbmcgZm9yIHVuZGVmaW5lZC9udWxsICdvcmRlcicgdmFsdWVzXHJcbiAgICAgICAgaWYgKG9yZGVyMSA9PT0gbnVsbCB8fCBvcmRlcjEgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcmV0dXJuIDE7IC8vIFBsYWNlIGVsZW1lbnRzIHdpdGggdW5kZWZpbmVkIG9yIG51bGwgJ29yZGVyJyBhdCB0aGUgZW5kXHJcbiAgICAgICAgfSBlbHNlIGlmIChvcmRlcjIgPT09IG51bGwgfHwgb3JkZXIyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAtMTsgLy8gUGxhY2UgZWxlbWVudHMgd2l0aCB1bmRlZmluZWQgb3IgbnVsbCAnb3JkZXInIGF0IHRoZSBiZWdpbm5pbmdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gQXBwbHkgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gJ29yZGVyVHlwZSdcclxuICAgICAgICAgIHJldHVybiBvcmRlclR5cGUgPT09IERFU0NcclxuICAgICAgICAgICAgPyBvcmRlcjIgLSBvcmRlcjEgLy8gUmV2ZXJzZSBmb3IgZGVzY2VuZGluZyBvcmRlclxyXG4gICAgICAgICAgICA6IG9yZGVyMSAtIG9yZGVyMjsgLy8gTWFpbnRhaW4gZm9yIGFzY2VuZGluZyBvcmRlclxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFycjsgLy8gUmV0dXJuIHRoZSBvcmlnaW5hbCBhcnJheSBpZiBjb25kaXRpb25zIGFyZSBub3QgbWV0XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,125 +0,0 @@
1
- import { Component, Input, Inject, } from '@angular/core';
2
- import { CommonModule, DOCUMENT } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./../rm-image-slider.service";
5
- import * as i2 from "@angular/platform-browser";
6
- import * as i3 from "@angular/common";
7
- const youtubeRegExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/, validFileExtensions = ['jpeg', 'jpg', 'gif', 'png'], validVideoExtensions = ['mp4'];
8
- export class SliderCustomImageComponent {
9
- constructor(imageSliderService, sanitizer, document) {
10
- this.imageSliderService = imageSliderService;
11
- this.sanitizer = sanitizer;
12
- this.YOUTUBE = 'youtube';
13
- this.IMAGE = 'image';
14
- this.VIDEO = 'video';
15
- this.fileUrl = '';
16
- this.fileExtension = '';
17
- this.type = this.IMAGE;
18
- this.imageLoading = true;
19
- // @inputs
20
- this.showVideo = false;
21
- this.videoAutoPlay = false;
22
- this.showVideoControls = 1;
23
- this.speed = 1;
24
- this.isVideo = false;
25
- this.alt = '';
26
- this.title = '';
27
- this.direction = 'ltr';
28
- this.ratio = false;
29
- this.lazy = false;
30
- }
31
- ngOnChanges(changes) {
32
- if (this['imageUrl'] &&
33
- typeof this['imageUrl'] === 'string' &&
34
- ((changes['imageUrl'] && changes['imageUrl'].firstChange) ||
35
- this.videoAutoPlay)) {
36
- this.setUrl();
37
- }
38
- }
39
- setUrl() {
40
- const url = this.imageUrl;
41
- this.imageLoading = true;
42
- this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
43
- this.fileExtension = url.split('.').pop().split(/\#|\?/)[0];
44
- if (this.imageSliderService.base64FileExtension(url) &&
45
- (validFileExtensions.indexOf(this.imageSliderService.base64FileExtension(url).toLowerCase()) > -1 ||
46
- validVideoExtensions.indexOf(this.imageSliderService.base64FileExtension(url).toLowerCase()) > -1)) {
47
- this.fileExtension = this.imageSliderService.base64FileExtension(url);
48
- }
49
- // verify for youtube url
50
- const match = url.match(youtubeRegExp);
51
- if (match && match[2].length === 11) {
52
- if (this.showVideo) {
53
- this.type = this.YOUTUBE;
54
- this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`${'https://www.youtube.com/embed/'}${match[2]}${this.videoAutoPlay
55
- ? '?autoplay=1&enablejsapi=1'
56
- : '?autoplay=0&enablejsapi=1'}${'&controls='}${this.showVideoControls}`);
57
- }
58
- else {
59
- this.type = this.IMAGE;
60
- this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`https://img.youtube.com/vi/${match[2]}/0.jpg`);
61
- }
62
- }
63
- else if (this.fileExtension &&
64
- validFileExtensions.indexOf(this.fileExtension.toLowerCase()) > -1) {
65
- this.type = this.IMAGE;
66
- }
67
- else if (this.fileExtension &&
68
- validVideoExtensions.indexOf(this.fileExtension.toLowerCase()) > -1) {
69
- this.type = this.VIDEO;
70
- if (this.videoAutoPlay &&
71
- document.getElementById(`video_${this.imageIndex}`)) {
72
- const videoObj = document.getElementById(`video_${this.imageIndex}`);
73
- setTimeout(() => {
74
- videoObj.play();
75
- }, this.speed * 1000);
76
- }
77
- }
78
- }
79
- videoClickHandler(event) {
80
- if (event && event.srcElement && !this.showVideoControls) {
81
- if (event.srcElement.paused) {
82
- event.srcElement.play();
83
- }
84
- else {
85
- event.srcElement.pause();
86
- }
87
- }
88
- }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SliderCustomImageComponent, deps: [{ token: i1.RmImageSliderService }, { token: i2.DomSanitizer }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: SliderCustomImageComponent, isStandalone: true, selector: "custom-img", inputs: { showVideo: "showVideo", videoAutoPlay: "videoAutoPlay", showVideoControls: "showVideoControls", currentImageIndex: "currentImageIndex", imageIndex: "imageIndex", speed: "speed", imageUrl: "imageUrl", isVideo: "isVideo", alt: "alt", title: "title", direction: "direction", ratio: "ratio", lazy: "lazy" }, usesOnChanges: true, ngImport: i0, template: "@if (fileUrl) {\r\n <div class=\"custom-image-main\" [ngClass]=\"{'ng-fullimage-loading': imageLoading}\">\r\n @if (type === IMAGE && fileUrl) {\r\n <img class=\"image\" (load)=\"imageLoading = false\" [ngClass]=\"{'ratio': ratio}\"\r\n [src]=\"fileUrl\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"lazy == true ? 'lazy' : null\">\r\n }\r\n @if (type === YOUTUBE && fileUrl) {\r\n <iframe class=\"youtube\" [src]=\"fileUrl\"\r\n [attr.loading]=\"lazy == true ? 'lazy' : null\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen></iframe>\r\n }\r\n @if (type === VIDEO) {\r\n <video class=\"video\" [id]=\"'video_' + imageIndex\" [ngClass]=\"{'ratio': ratio}\" (click)=\"videoClickHandler($event)\"\r\n [autoplay]=\"videoAutoPlay\" type=\"video/mp4\"\r\n [attr.controls]=\"showVideoControls ? showVideoControls : null\" controlsList=\"nodownload\">\r\n <source [src]=\"fileUrl\" type=\"video/mp4\">\r\n Your browser does not support the video tag.\r\n </video>\r\n }\r\n @if (!fileUrl) {\r\n <div [dir]=\"direction\" class=\"invalid-msg\">Invalid file format</div>\r\n }\r\n @if (type === YOUTUBE || type === VIDEO || isVideo) {\r\n <span class=\"youtube-icon\"></span>\r\n }\r\n </div>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
91
- }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SliderCustomImageComponent, decorators: [{
93
- type: Component,
94
- args: [{ selector: 'custom-img', standalone: true, imports: [CommonModule], template: "@if (fileUrl) {\r\n <div class=\"custom-image-main\" [ngClass]=\"{'ng-fullimage-loading': imageLoading}\">\r\n @if (type === IMAGE && fileUrl) {\r\n <img class=\"image\" (load)=\"imageLoading = false\" [ngClass]=\"{'ratio': ratio}\"\r\n [src]=\"fileUrl\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"lazy == true ? 'lazy' : null\">\r\n }\r\n @if (type === YOUTUBE && fileUrl) {\r\n <iframe class=\"youtube\" [src]=\"fileUrl\"\r\n [attr.loading]=\"lazy == true ? 'lazy' : null\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen></iframe>\r\n }\r\n @if (type === VIDEO) {\r\n <video class=\"video\" [id]=\"'video_' + imageIndex\" [ngClass]=\"{'ratio': ratio}\" (click)=\"videoClickHandler($event)\"\r\n [autoplay]=\"videoAutoPlay\" type=\"video/mp4\"\r\n [attr.controls]=\"showVideoControls ? showVideoControls : null\" controlsList=\"nodownload\">\r\n <source [src]=\"fileUrl\" type=\"video/mp4\">\r\n Your browser does not support the video tag.\r\n </video>\r\n }\r\n @if (!fileUrl) {\r\n <div [dir]=\"direction\" class=\"invalid-msg\">Invalid file format</div>\r\n }\r\n @if (type === YOUTUBE || type === VIDEO || isVideo) {\r\n <span class=\"youtube-icon\"></span>\r\n }\r\n </div>\r\n}" }]
95
- }], ctorParameters: () => [{ type: i1.RmImageSliderService }, { type: i2.DomSanitizer }, { type: Document, decorators: [{
96
- type: Inject,
97
- args: [DOCUMENT]
98
- }] }], propDecorators: { showVideo: [{
99
- type: Input
100
- }], videoAutoPlay: [{
101
- type: Input
102
- }], showVideoControls: [{
103
- type: Input
104
- }], currentImageIndex: [{
105
- type: Input
106
- }], imageIndex: [{
107
- type: Input
108
- }], speed: [{
109
- type: Input
110
- }], imageUrl: [{
111
- type: Input
112
- }], isVideo: [{
113
- type: Input
114
- }], alt: [{
115
- type: Input
116
- }], title: [{
117
- type: Input
118
- }], direction: [{
119
- type: Input
120
- }], ratio: [{
121
- type: Input
122
- }], lazy: [{
123
- type: Input
124
- }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWN1c3RvbS1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ybS1pbWFnZS1zbGlkZXIvc3JjL2xpYi9zbGlkZXItY3VzdG9tLWltYWdlL3NsaWRlci1jdXN0b20taW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm0taW1hZ2Utc2xpZGVyL3NyYy9saWIvc2xpZGVyLWN1c3RvbS1pbWFnZS9zbGlkZXItY3VzdG9tLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUl6RCxNQUFNLGFBQWEsR0FDZixzRUFBc0UsRUFDeEUsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFDbkQsb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVNqQyxNQUFNLE9BQU8sMEJBQTBCO0lBd0JyQyxZQUNTLGtCQUF3QyxFQUN2QyxTQUF1QixFQUNiLFFBQWtCO1FBRjdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQXpCakMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUNwQixVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsVUFBVTtRQUNELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0Isc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBRzlCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFXLEtBQUssQ0FBQztRQUMxQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFNBQUksR0FBWSxLQUFLLENBQUM7SUFNNUIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTtZQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsRUFDckIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztZQUNoRCxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUMvRCxHQUFHLENBQUMsQ0FBQztnQkFDSixvQkFBb0IsQ0FBQyxPQUFPLENBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FDL0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNULENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QseUJBQXlCO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQzFELEdBQUcsZ0NBQWdDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUM1QyxJQUFJLENBQUMsYUFBYTtvQkFDaEIsQ0FBQyxDQUFDLDJCQUEyQjtvQkFDN0IsQ0FBQyxDQUFDLDJCQUNOLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUMzQyxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUMxRCw4QkFBOEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQy9DLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQ0wsSUFBSSxDQUFDLGFBQWE7WUFDbEIsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDbEUsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFDTCxJQUFJLENBQUMsYUFBYTtZQUNsQixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNuRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLElBQ0UsSUFBSSxDQUFDLGFBQWE7Z0JBQ2xCLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDbkQsQ0FBQztnQkFDRCxNQUFNLFFBQVEsR0FBUSxRQUFRLENBQUMsY0FBYyxDQUMzQyxTQUFTLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDM0IsQ0FBQztnQkFDRixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0EzR1UsMEJBQTBCLGtGQTJCM0IsUUFBUTttR0EzQlAsMEJBQTBCLHFaQ3ZCdkMscXhDQXlCQyx5REROVyxZQUFZOzs0RkFJWCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs7MEJBK0JwQixNQUFNOzJCQUFDLFFBQVE7eUNBakJULFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgUm1JbWFnZVNsaWRlclNlcnZpY2UgfSBmcm9tICcuLy4uL3JtLWltYWdlLXNsaWRlci5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IHlvdXR1YmVSZWdFeHAgPVxyXG4gICAgL14uKih5b3V0dS5iZVxcL3x2XFwvfHVcXC9cXHdcXC98ZW1iZWRcXC98d2F0Y2hcXD92PXxcXCZ2PXxcXD92PSkoW14jXFwmXFw/XSopLiovLFxyXG4gIHZhbGlkRmlsZUV4dGVuc2lvbnMgPSBbJ2pwZWcnLCAnanBnJywgJ2dpZicsICdwbmcnXSxcclxuICB2YWxpZFZpZGVvRXh0ZW5zaW9ucyA9IFsnbXA0J107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N1c3RvbS1pbWcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci1jdXN0b20taW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zbGlkZXItY3VzdG9tLWltYWdlLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpZGVyQ3VzdG9tSW1hZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIFlPVVRVQkUgPSAneW91dHViZSc7XHJcbiAgSU1BR0UgPSAnaW1hZ2UnO1xyXG4gIFZJREVPID0gJ3ZpZGVvJztcclxuICBmaWxlVXJsOiBTYWZlUmVzb3VyY2VVcmwgPSAnJztcclxuICBmaWxlRXh0ZW5zaW9uID0gJyc7XHJcbiAgdHlwZSA9IHRoaXMuSU1BR0U7XHJcbiAgaW1hZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gQGlucHV0c1xyXG4gIEBJbnB1dCgpIHNob3dWaWRlbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZpZGVvQXV0b1BsYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VmlkZW9Db250cm9sczogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKSBjdXJyZW50SW1hZ2VJbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpbWFnZUluZGV4ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNwZWVkOiBudW1iZXIgPSAxO1xyXG4gIEBJbnB1dCgpIGltYWdlVXJsOiBhbnk7XHJcbiAgQElucHV0KCkgaXNWaWRlbyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFsdDogU3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdGl0bGU6IFN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogc3RyaW5nID0gJ2x0cic7XHJcbiAgQElucHV0KCkgcmF0aW86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsYXp5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGltYWdlU2xpZGVyU2VydmljZTogUm1JbWFnZVNsaWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXNbJ2ltYWdlVXJsJ10gJiZcclxuICAgICAgdHlwZW9mIHRoaXNbJ2ltYWdlVXJsJ10gPT09ICdzdHJpbmcnICYmXHJcbiAgICAgICgoY2hhbmdlc1snaW1hZ2VVcmwnXSAmJiBjaGFuZ2VzWydpbWFnZVVybCddLmZpcnN0Q2hhbmdlKSB8fFxyXG4gICAgICAgIHRoaXMudmlkZW9BdXRvUGxheSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNldFVybCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VXJsKCkge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5pbWFnZVVybDtcclxuICAgIHRoaXMuaW1hZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xyXG4gICAgdGhpcy5maWxlRXh0ZW5zaW9uID0gdXJsLnNwbGl0KCcuJykucG9wKCkuc3BsaXQoL1xcI3xcXD8vKVswXTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5pbWFnZVNsaWRlclNlcnZpY2UuYmFzZTY0RmlsZUV4dGVuc2lvbih1cmwpICYmXHJcbiAgICAgICh2YWxpZEZpbGVFeHRlbnNpb25zLmluZGV4T2YoXHJcbiAgICAgICAgdGhpcy5pbWFnZVNsaWRlclNlcnZpY2UuYmFzZTY0RmlsZUV4dGVuc2lvbih1cmwpLnRvTG93ZXJDYXNlKClcclxuICAgICAgKSA+IC0xIHx8XHJcbiAgICAgICAgdmFsaWRWaWRlb0V4dGVuc2lvbnMuaW5kZXhPZihcclxuICAgICAgICAgIHRoaXMuaW1hZ2VTbGlkZXJTZXJ2aWNlLmJhc2U2NEZpbGVFeHRlbnNpb24odXJsKS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgKSA+IC0xKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiA9IHRoaXMuaW1hZ2VTbGlkZXJTZXJ2aWNlLmJhc2U2NEZpbGVFeHRlbnNpb24odXJsKTtcclxuICAgIH1cclxuICAgIC8vIHZlcmlmeSBmb3IgeW91dHViZSB1cmxcclxuICAgIGNvbnN0IG1hdGNoID0gdXJsLm1hdGNoKHlvdXR1YmVSZWdFeHApO1xyXG4gICAgaWYgKG1hdGNoICYmIG1hdGNoWzJdLmxlbmd0aCA9PT0gMTEpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd1ZpZGVvKSB7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy5ZT1VUVUJFO1xyXG4gICAgICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcclxuICAgICAgICAgIGAkeydodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nfSR7bWF0Y2hbMl19JHtcclxuICAgICAgICAgICAgdGhpcy52aWRlb0F1dG9QbGF5XHJcbiAgICAgICAgICAgICAgPyAnP2F1dG9wbGF5PTEmZW5hYmxlanNhcGk9MSdcclxuICAgICAgICAgICAgICA6ICc/YXV0b3BsYXk9MCZlbmFibGVqc2FwaT0xJ1xyXG4gICAgICAgICAgfSR7JyZjb250cm9scz0nfSR7dGhpcy5zaG93VmlkZW9Db250cm9sc31gXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLklNQUdFO1xyXG4gICAgICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcclxuICAgICAgICAgIGBodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS8ke21hdGNoWzJdfS8wLmpwZ2BcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmZpbGVFeHRlbnNpb24gJiZcclxuICAgICAgdmFsaWRGaWxlRXh0ZW5zaW9ucy5pbmRleE9mKHRoaXMuZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSA+IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5JTUFHRTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiAmJlxyXG4gICAgICB2YWxpZFZpZGVvRXh0ZW5zaW9ucy5pbmRleE9mKHRoaXMuZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSA+IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5WSURFTztcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudmlkZW9BdXRvUGxheSAmJlxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGB2aWRlb18ke3RoaXMuaW1hZ2VJbmRleH1gKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB2aWRlb09iajogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICAgICBgdmlkZW9fJHt0aGlzLmltYWdlSW5kZXh9YFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB2aWRlb09iai5wbGF5KCk7XHJcbiAgICAgICAgfSwgdGhpcy5zcGVlZCAqIDEwMDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2aWRlb0NsaWNrSGFuZGxlcihldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3JjRWxlbWVudCAmJiAhdGhpcy5zaG93VmlkZW9Db250cm9scykge1xyXG4gICAgICBpZiAoZXZlbnQuc3JjRWxlbWVudC5wYXVzZWQpIHtcclxuICAgICAgICBldmVudC5zcmNFbGVtZW50LnBsYXkoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBldmVudC5zcmNFbGVtZW50LnBhdXNlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChmaWxlVXJsKSB7XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbWFnZS1tYWluXCIgW25nQ2xhc3NdPVwieyduZy1mdWxsaW1hZ2UtbG9hZGluZyc6IGltYWdlTG9hZGluZ31cIj5cclxuICAgIEBpZiAodHlwZSA9PT0gSU1BR0UgJiYgZmlsZVVybCkge1xyXG4gICAgICA8aW1nIGNsYXNzPVwiaW1hZ2VcIiAobG9hZCk9XCJpbWFnZUxvYWRpbmcgPSBmYWxzZVwiIFtuZ0NsYXNzXT1cInsncmF0aW8nOiByYXRpb31cIlxyXG4gICAgICAgIFtzcmNdPVwiZmlsZVVybFwiIFthbHRdPVwiYWx0XCIgW3RpdGxlXT1cInRpdGxlXCIgW2F0dHIubG9hZGluZ109XCJsYXp5ID09IHRydWUgPyAnbGF6eScgOiBudWxsXCI+XHJcbiAgICB9XHJcbiAgICBAaWYgKHR5cGUgPT09IFlPVVRVQkUgJiYgZmlsZVVybCkge1xyXG4gICAgICA8aWZyYW1lIGNsYXNzPVwieW91dHViZVwiIFtzcmNdPVwiZmlsZVVybFwiXHJcbiAgICAgIFthdHRyLmxvYWRpbmddPVwibGF6eSA9PSB0cnVlID8gJ2xhenknIDogbnVsbFwiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93PVwiYXV0b3BsYXlcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+XHJcbiAgICB9XHJcbiAgICBAaWYgKHR5cGUgPT09IFZJREVPKSB7XHJcbiAgICAgIDx2aWRlbyBjbGFzcz1cInZpZGVvXCIgW2lkXT1cIid2aWRlb18nICsgaW1hZ2VJbmRleFwiIFtuZ0NsYXNzXT1cInsncmF0aW8nOiByYXRpb31cIiAoY2xpY2spPVwidmlkZW9DbGlja0hhbmRsZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgW2F1dG9wbGF5XT1cInZpZGVvQXV0b1BsYXlcIiB0eXBlPVwidmlkZW8vbXA0XCJcclxuICAgICAgICBbYXR0ci5jb250cm9sc109XCJzaG93VmlkZW9Db250cm9scyA/IHNob3dWaWRlb0NvbnRyb2xzIDogbnVsbFwiIGNvbnRyb2xzTGlzdD1cIm5vZG93bmxvYWRcIj5cclxuICAgICAgICA8c291cmNlIFtzcmNdPVwiZmlsZVVybFwiIHR5cGU9XCJ2aWRlby9tcDRcIj5cclxuICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgdmlkZW8gdGFnLlxyXG4gICAgICA8L3ZpZGVvPlxyXG4gICAgfVxyXG4gICAgQGlmICghZmlsZVVybCkge1xyXG4gICAgICA8ZGl2IFtkaXJdPVwiZGlyZWN0aW9uXCIgY2xhc3M9XCJpbnZhbGlkLW1zZ1wiPkludmFsaWQgZmlsZSBmb3JtYXQ8L2Rpdj5cclxuICAgIH1cclxuICAgIEBpZiAodHlwZSA9PT0gWU9VVFVCRSB8fCB0eXBlID09PSBWSURFTyB8fCBpc1ZpZGVvKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieW91dHViZS1pY29uXCI+PC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59Il19