rm-image-slider 17.1.3
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/README.md +138 -0
- package/esm2022/lib/interface.mjs +2 -0
- package/esm2022/lib/rm-image-slider.component.mjs +541 -0
- package/esm2022/lib/rm-image-slider.service.mjs +69 -0
- package/esm2022/lib/slider-custom-image/slider-custom-image.component.mjs +125 -0
- package/esm2022/lib/slider-lightbox/slider-lightbox.component.mjs +246 -0
- package/esm2022/public-api.mjs +6 -0
- package/esm2022/rm-image-slider.mjs +5 -0
- package/fesm2022/rm-image-slider.mjs +976 -0
- package/fesm2022/rm-image-slider.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/interface.d.ts +10 -0
- package/lib/rm-image-slider.component.d.ts +92 -0
- package/lib/rm-image-slider.service.d.ts +9 -0
- package/lib/slider-custom-image/slider-custom-image.component.d.ts +34 -0
- package/lib/slider-lightbox/slider-lightbox.component.d.ts +56 -0
- package/package.json +46 -0
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,69 @@
|
|
|
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: "17.3.0", ngImport: i0, type: RmImageSliderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
61
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RmImageSliderService, providedIn: 'root' }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RmImageSliderService, decorators: [{
|
|
64
|
+
type: Injectable,
|
|
65
|
+
args: [{
|
|
66
|
+
providedIn: 'root',
|
|
67
|
+
}]
|
|
68
|
+
}], ctorParameters: () => [] });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm0taW1hZ2Utc2xpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ybS1pbWFnZS1zbGlkZXIvc3JjL2xpYi9ybS1pbWFnZS1zbGlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQ2pCLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFLZCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxXQUFXLEdBQ2Isa0VBQWtFLENBQUM7UUFDckUsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLG9DQUFvQztJQUNwQyxnREFBZ0Q7SUFDaEQsc0RBQXNEO0lBQ3RELG9CQUFvQjtJQUNwQiw2REFBNkQ7SUFDN0QscUJBQXFCO0lBQ3JCLGtEQUFrRDtJQUNsRCxvQ0FBb0M7SUFDcEMsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGtEQUFrRDtJQUNsRCxvQ0FBb0M7SUFDcEMsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLFVBQVU7SUFDVixVQUFVO0lBQ1YsTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUosVUFBVSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLEdBQUc7UUFDbEMsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxHQUFRLEVBQUUsRUFBRTtnQkFDckMsZ0RBQWdEO2dCQUNoRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFNUIsOERBQThEO2dCQUM5RCxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLDJEQUEyRDtnQkFDdkUsQ0FBQztxQkFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNuRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsaUVBQWlFO2dCQUM5RSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sMkRBQTJEO29CQUMzRCxPQUFPLFNBQVMsS0FBSyxJQUFJO3dCQUN2QixDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQywrQkFBK0I7d0JBQ2pELENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsK0JBQStCO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsQ0FBQyxzREFBc0Q7SUFDcEUsQ0FBQzs4R0E1RFUsb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IERFU0MgPSAnREVTQycsXHJcbiAgQVNDID0gJ0FTQyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm1JbWFnZVNsaWRlclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgaXNCYXNlNjQoc3RyOiBzdHJpbmcpIHtcclxuICAgIHZhciBiYXNlNjRyZWdleCA9XHJcbiAgICAgIC9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLztcclxuICAgIHJldHVybiBiYXNlNjRyZWdleC50ZXN0KHN0cik7XHJcbiAgfVxyXG5cclxuICBiYXNlNjRGaWxlRXh0ZW5zaW9uKHN0cjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygnZGF0YTppbWFnZS8nLmxlbmd0aCwgc3RyLmluZGV4T2YoJztiYXNlNjQnKSk7XHJcbiAgfVxyXG5cclxuICAvLyBvcmRlckFycmF5KGFyciA9IFtdLCBvcmRlclR5cGUgPSBBU0MpIHtcclxuICAvLyAgIGlmIChhcnI/Lmxlbmd0aCAmJiBvcmRlclR5cGUpIHtcclxuICAvLyAgICAgcmV0dXJuIGFyci5zb3J0KChvYjE6IGFueSwgb2IyOiBhbnkpID0+IHtcclxuICAvLyAgICAgICBpZiAob2IxWydvcmRlciddID09PSBudWxsIHx8ICFvYjFbJ29yZGVyJ10pIHtcclxuICAvLyAgICAgICAgIHJldHVybiAxO1xyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAob2IyWydvcmRlciddID09PSBudWxsIHx8ICFvYjJbJ29yZGVyJ10pIHtcclxuICAvLyAgICAgICAgIHJldHVybiAtMTtcclxuICAvLyAgICAgICB9IGVsc2UgaWYgKG9iMVsnb3JkZXInXSA+IG9iMlsnb3JkZXInXSkge1xyXG4gIC8vICAgICAgICAgaWYgKG9yZGVyVHlwZSA9PT0gREVTQykge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgLy8gICAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gMTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2UgaWYgKG9iMVsnb3JkZXInXSA8IG9iMlsnb3JkZXInXSkge1xyXG4gIC8vICAgICAgICAgaWYgKG9yZGVyVHlwZSA9PT0gREVTQykge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gMTtcclxuICAvLyAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgIHJldHVybiAtMTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIGFycjtcclxuICAvLyB9XHJcblxyXG4gIG9yZGVyQXJyYXkoYXJyID0gW10sIG9yZGVyVHlwZSA9IEFTQykge1xyXG4gICAgaWYgKGFycj8ubGVuZ3RoICYmIG9yZGVyVHlwZSkge1xyXG4gICAgICByZXR1cm4gYXJyLnNvcnQoKG9iMTogYW55LCBvYjI6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBwb3RlbnRpYWwgdW5kZWZpbmVkICdvcmRlcicgcHJvcGVydGllc1xyXG4gICAgICAgIGNvbnN0IG9yZGVyMSA9IG9iMVsnb3JkZXInXTtcclxuICAgICAgICBjb25zdCBvcmRlcjIgPSBvYjJbJ29yZGVyJ107XHJcblxyXG4gICAgICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IHNvcnRpbmcgZm9yIHVuZGVmaW5lZC9udWxsICdvcmRlcicgdmFsdWVzXHJcbiAgICAgICAgaWYgKG9yZGVyMSA9PT0gbnVsbCB8fCBvcmRlcjEgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcmV0dXJuIDE7IC8vIFBsYWNlIGVsZW1lbnRzIHdpdGggdW5kZWZpbmVkIG9yIG51bGwgJ29yZGVyJyBhdCB0aGUgZW5kXHJcbiAgICAgICAgfSBlbHNlIGlmIChvcmRlcjIgPT09IG51bGwgfHwgb3JkZXIyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAtMTsgLy8gUGxhY2UgZWxlbWVudHMgd2l0aCB1bmRlZmluZWQgb3IgbnVsbCAnb3JkZXInIGF0IHRoZSBiZWdpbm5pbmdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gQXBwbHkgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gJ29yZGVyVHlwZSdcclxuICAgICAgICAgIHJldHVybiBvcmRlclR5cGUgPT09IERFU0NcclxuICAgICAgICAgICAgPyBvcmRlcjIgLSBvcmRlcjEgLy8gUmV2ZXJzZSBmb3IgZGVzY2VuZGluZyBvcmRlclxyXG4gICAgICAgICAgICA6IG9yZGVyMSAtIG9yZGVyMjsgLy8gTWFpbnRhaW4gZm9yIGFzY2VuZGluZyBvcmRlclxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFycjsgLy8gUmV0dXJuIHRoZSBvcmlnaW5hbCBhcnJheSBpZiBjb25kaXRpb25zIGFyZSBub3QgbWV0XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,125 @@
|
|
|
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: "17.3.0", ngImport: i0, type: SliderCustomImageComponent, deps: [{ token: i1.RmImageSliderService }, { token: i2.DomSanitizer }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", 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: "<div *ngIf=\"fileUrl\" class=\"custom-image-main\" [ngClass]=\"{'ng-fullimage-loading': imageLoading}\">\r\n <img class=\"image\" (load)=\"imageLoading = false\" [ngClass]=\"{'ratio': ratio}\" *ngIf=\"type === IMAGE && fileUrl\"\r\n [src]=\"fileUrl\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"lazy == true ? 'lazy' : null\">\r\n <iframe class=\"youtube\" *ngIf=\"type === YOUTUBE && fileUrl\" [src]=\"fileUrl\"\r\n [attr.loading]=\"lazy == true ? 'lazy' : null\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen></iframe>\r\n <video class=\"video\" [id]=\"'video_' + imageIndex\" [ngClass]=\"{'ratio': ratio}\" (click)=\"videoClickHandler($event)\"\r\n [autoplay]=\"videoAutoPlay\" *ngIf=\"type === VIDEO\" 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 <div [dir]=\"direction\" *ngIf=\"!fileUrl\" class=\"invalid-msg\">Invalid file format</div>\r\n <span *ngIf=\"type === YOUTUBE || type === VIDEO || isVideo\" class=\"youtube-icon\"></span>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
91
|
+
}
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SliderCustomImageComponent, decorators: [{
|
|
93
|
+
type: Component,
|
|
94
|
+
args: [{ selector: 'custom-img', standalone: true, imports: [CommonModule], template: "<div *ngIf=\"fileUrl\" class=\"custom-image-main\" [ngClass]=\"{'ng-fullimage-loading': imageLoading}\">\r\n <img class=\"image\" (load)=\"imageLoading = false\" [ngClass]=\"{'ratio': ratio}\" *ngIf=\"type === IMAGE && fileUrl\"\r\n [src]=\"fileUrl\" [alt]=\"alt\" [title]=\"title\" [attr.loading]=\"lazy == true ? 'lazy' : null\">\r\n <iframe class=\"youtube\" *ngIf=\"type === YOUTUBE && fileUrl\" [src]=\"fileUrl\"\r\n [attr.loading]=\"lazy == true ? 'lazy' : null\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen></iframe>\r\n <video class=\"video\" [id]=\"'video_' + imageIndex\" [ngClass]=\"{'ratio': ratio}\" (click)=\"videoClickHandler($event)\"\r\n [autoplay]=\"videoAutoPlay\" *ngIf=\"type === VIDEO\" 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 <div [dir]=\"direction\" *ngIf=\"!fileUrl\" class=\"invalid-msg\">Invalid file format</div>\r\n <span *ngIf=\"type === YOUTUBE || type === VIDEO || isVideo\" class=\"youtube-icon\"></span>\r\n</div>" }]
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWN1c3RvbS1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ybS1pbWFnZS1zbGlkZXIvc3JjL2xpYi9zbGlkZXItY3VzdG9tLWltYWdlL3NsaWRlci1jdXN0b20taW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm0taW1hZ2Utc2xpZGVyL3NyYy9saWIvc2xpZGVyLWN1c3RvbS1pbWFnZS9zbGlkZXItY3VzdG9tLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUl6RCxNQUFNLGFBQWEsR0FDZixzRUFBc0UsRUFDeEUsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFDbkQsb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVNqQyxNQUFNLE9BQU8sMEJBQTBCO0lBd0JyQyxZQUNTLGtCQUF3QyxFQUN2QyxTQUF1QixFQUNiLFFBQWtCO1FBRjdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQXpCakMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUNwQixVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsVUFBVTtRQUNELGNBQVMs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SCxDQUFDO0lBQ0gsQ0FBQzs4R0EzR1UsMEJBQTBCLGtGQTJCM0IsUUFBUTtrR0EzQlAsMEJBQTBCLHFaQ3ZCdkMsdXBDQWFNLHlERE1NLFlBQVk7OzJGQUlYLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzswQkErQnBCLE1BQU07MkJBQUMsUUFBUTt5Q0FqQlQsU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBJbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBSbUltYWdlU2xpZGVyU2VydmljZSB9IGZyb20gJy4vLi4vcm0taW1hZ2Utc2xpZGVyLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgeW91dHViZVJlZ0V4cCA9XHJcbiAgICAvXi4qKHlvdXR1LmJlXFwvfHZcXC98dVxcL1xcd1xcL3xlbWJlZFxcL3x3YXRjaFxcP3Y9fFxcJnY9fFxcP3Y9KShbXiNcXCZcXD9dKikuKi8sXHJcbiAgdmFsaWRGaWxlRXh0ZW5zaW9ucyA9IFsnanBlZycsICdqcGcnLCAnZ2lmJywgJ3BuZyddLFxyXG4gIHZhbGlkVmlkZW9FeHRlbnNpb25zID0gWydtcDQnXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3VzdG9tLWltZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLWN1c3RvbS1pbWFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NsaWRlci1jdXN0b20taW1hZ2UuY29tcG9uZW50LmNzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlkZXJDdXN0b21JbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgWU9VVFVCRSA9ICd5b3V0dWJlJztcclxuICBJTUFHRSA9ICdpbWFnZSc7XHJcbiAgVklERU8gPSAndmlkZW8nO1xyXG4gIGZpbGVVcmw6IFNhZmVSZXNvdXJjZVVybCA9ICcnO1xyXG4gIGZpbGVFeHRlbnNpb24gPSAnJztcclxuICB0eXBlID0gdGhpcy5JTUFHRTtcclxuICBpbWFnZUxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvLyBAaW5wdXRzXHJcbiAgQElucHV0KCkgc2hvd1ZpZGVvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlkZW9BdXRvUGxheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dWaWRlb0NvbnRyb2xzOiBudW1iZXIgPSAxO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRJbWFnZUluZGV4ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGltYWdlSW5kZXghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc3BlZWQ6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgaW1hZ2VVcmw6IGFueTtcclxuICBASW5wdXQoKSBpc1ZpZGVvID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWx0OiBTdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB0aXRsZTogU3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlyZWN0aW9uOiBzdHJpbmcgPSAnbHRyJztcclxuICBASW5wdXQoKSByYXRpbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxhenk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaW1hZ2VTbGlkZXJTZXJ2aWNlOiBSbUltYWdlU2xpZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogRG9jdW1lbnRcclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpc1snaW1hZ2VVcmwnXSAmJlxyXG4gICAgICB0eXBlb2YgdGhpc1snaW1hZ2VVcmwnXSA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgKChjaGFuZ2VzWydpbWFnZVVybCddICYmIGNoYW5nZXNbJ2ltYWdlVXJsJ10uZmlyc3RDaGFuZ2UpIHx8XHJcbiAgICAgICAgdGhpcy52aWRlb0F1dG9QbGF5KVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2V0VXJsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRVcmwoKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmltYWdlVXJsO1xyXG4gICAgdGhpcy5pbWFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XHJcbiAgICB0aGlzLmZpbGVFeHRlbnNpb24gPSB1cmwuc3BsaXQoJy4nKS5wb3AoKS5zcGxpdCgvXFwjfFxcPy8pWzBdO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmltYWdlU2xpZGVyU2VydmljZS5iYXNlNjRGaWxlRXh0ZW5zaW9uKHVybCkgJiZcclxuICAgICAgKHZhbGlkRmlsZUV4dGVuc2lvbnMuaW5kZXhPZihcclxuICAgICAgICB0aGlzLmltYWdlU2xpZGVyU2VydmljZS5iYXNlNjRGaWxlRXh0ZW5zaW9uKHVybCkudG9Mb3dlckNhc2UoKVxyXG4gICAgICApID4gLTEgfHxcclxuICAgICAgICB2YWxpZFZpZGVvRXh0ZW5zaW9ucy5pbmRleE9mKFxyXG4gICAgICAgICAgdGhpcy5pbWFnZVNsaWRlclNlcnZpY2UuYmFzZTY0RmlsZUV4dGVuc2lvbih1cmwpLnRvTG93ZXJDYXNlKClcclxuICAgICAgICApID4gLTEpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uID0gdGhpcy5pbWFnZVNsaWRlclNlcnZpY2UuYmFzZTY0RmlsZUV4dGVuc2lvbih1cmwpO1xyXG4gICAgfVxyXG4gICAgLy8gdmVyaWZ5IGZvciB5b3V0dWJlIHVybFxyXG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2goeW91dHViZVJlZ0V4cCk7XHJcbiAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMl0ubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93VmlkZW8pIHtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLllPVVRVQkU7XHJcbiAgICAgICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgYCR7J2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyd9JHttYXRjaFsyXX0ke1xyXG4gICAgICAgICAgICB0aGlzLnZpZGVvQXV0b1BsYXlcclxuICAgICAgICAgICAgICA/ICc/YXV0b3BsYXk9MSZlbmFibGVqc2FwaT0xJ1xyXG4gICAgICAgICAgICAgIDogJz9hdXRvcGxheT0wJmVuYWJsZWpzYXBpPTEnXHJcbiAgICAgICAgICB9JHsnJmNvbnRyb2xzPSd9JHt0aGlzLnNob3dWaWRlb0NvbnRyb2xzfWBcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHRoaXMuSU1BR0U7XHJcbiAgICAgICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgYGh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpLyR7bWF0Y2hbMl19LzAuanBnYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiAmJlxyXG4gICAgICB2YWxpZEZpbGVFeHRlbnNpb25zLmluZGV4T2YodGhpcy5maWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpID4gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnR5cGUgPSB0aGlzLklNQUdFO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uICYmXHJcbiAgICAgIHZhbGlkVmlkZW9FeHRlbnNpb25zLmluZGV4T2YodGhpcy5maWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpID4gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnR5cGUgPSB0aGlzLlZJREVPO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy52aWRlb0F1dG9QbGF5ICYmXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHZpZGVvXyR7dGhpcy5pbWFnZUluZGV4fWApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHZpZGVvT2JqOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgICAgIGB2aWRlb18ke3RoaXMuaW1hZ2VJbmRleH1gXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHZpZGVvT2JqLnBsYXkoKTtcclxuICAgICAgICB9LCB0aGlzLnNwZWVkICogMTAwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZpZGVvQ2xpY2tIYW5kbGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5zcmNFbGVtZW50ICYmICF0aGlzLnNob3dWaWRlb0NvbnRyb2xzKSB7XHJcbiAgICAgIGlmIChldmVudC5zcmNFbGVtZW50LnBhdXNlZCkge1xyXG4gICAgICAgIGV2ZW50LnNyY0VsZW1lbnQucGxheSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGV2ZW50LnNyY0VsZW1lbnQucGF1c2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiZmlsZVVybFwiIGNsYXNzPVwiY3VzdG9tLWltYWdlLW1haW5cIiBbbmdDbGFzc109XCJ7J25nLWZ1bGxpbWFnZS1sb2FkaW5nJzogaW1hZ2VMb2FkaW5nfVwiPlxyXG4gIDxpbWcgY2xhc3M9XCJpbWFnZVwiIChsb2FkKT1cImltYWdlTG9hZGluZyA9IGZhbHNlXCIgW25nQ2xhc3NdPVwieydyYXRpbyc6IHJhdGlvfVwiICpuZ0lmPVwidHlwZSA9PT0gSU1BR0UgJiYgZmlsZVVybFwiXHJcbiAgICBbc3JjXT1cImZpbGVVcmxcIiBbYWx0XT1cImFsdFwiIFt0aXRsZV09XCJ0aXRsZVwiIFthdHRyLmxvYWRpbmddPVwibGF6eSA9PSB0cnVlID8gJ2xhenknIDogbnVsbFwiPlxyXG4gIDxpZnJhbWUgY2xhc3M9XCJ5b3V0dWJlXCIgKm5nSWY9XCJ0eXBlID09PSBZT1VUVUJFICYmIGZpbGVVcmxcIiBbc3JjXT1cImZpbGVVcmxcIlxyXG4gICAgW2F0dHIubG9hZGluZ109XCJsYXp5ID09IHRydWUgPyAnbGF6eScgOiBudWxsXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3c9XCJhdXRvcGxheVwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT5cclxuICA8dmlkZW8gY2xhc3M9XCJ2aWRlb1wiIFtpZF09XCIndmlkZW9fJyArIGltYWdlSW5kZXhcIiBbbmdDbGFzc109XCJ7J3JhdGlvJzogcmF0aW99XCIgKGNsaWNrKT1cInZpZGVvQ2xpY2tIYW5kbGVyKCRldmVudClcIlxyXG4gICAgW2F1dG9wbGF5XT1cInZpZGVvQXV0b1BsYXlcIiAqbmdJZj1cInR5cGUgPT09IFZJREVPXCIgdHlwZT1cInZpZGVvL21wNFwiXHJcbiAgICBbYXR0ci5jb250cm9sc109XCJzaG93VmlkZW9Db250cm9scyA/IHNob3dWaWRlb0NvbnRyb2xzIDogbnVsbFwiIGNvbnRyb2xzTGlzdD1cIm5vZG93bmxvYWRcIj5cclxuICAgIDxzb3VyY2UgW3NyY109XCJmaWxlVXJsXCIgdHlwZT1cInZpZGVvL21wNFwiPlxyXG4gICAgWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHZpZGVvIHRhZy5cclxuICA8L3ZpZGVvPlxyXG4gIDxkaXYgW2Rpcl09XCJkaXJlY3Rpb25cIiAqbmdJZj1cIiFmaWxlVXJsXCIgY2xhc3M9XCJpbnZhbGlkLW1zZ1wiPkludmFsaWQgZmlsZSBmb3JtYXQ8L2Rpdj5cclxuICA8c3BhbiAqbmdJZj1cInR5cGUgPT09IFlPVVRVQkUgfHwgdHlwZSA9PT0gVklERU8gfHwgaXNWaWRlb1wiIGNsYXNzPVwieW91dHViZS1pY29uXCI+PC9zcGFuPlxyXG48L2Rpdj4iXX0=
|