@kms-ngx-ui/presentational 16.3.3 → 16.3.4
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/directives/directives.module.mjs +1 -6
- package/esm2022/lib/kms-ngx-ui-presentational.component.mjs +2 -3
- package/esm2022/lib/kms-ngx-ui-presentational.module.mjs +12 -10
- package/esm2022/lib/pipes/custom-pipes.module.mjs +11 -31
- package/esm2022/lib/pipes/trim.pipe.mjs +1 -1
- package/esm2022/lib/ui/generic-dialog/generic-dialog.component.mjs +6 -7
- package/esm2022/lib/ui/image-slider/image-slider.component.mjs +10 -167
- package/esm2022/lib/ui/tooltip/tooltip.component.mjs +16 -0
- package/esm2022/public-api.mjs +2 -6
- package/fesm2022/kms-ngx-ui-presentational.mjs +65 -353
- package/fesm2022/kms-ngx-ui-presentational.mjs.map +1 -1
- package/lib/directives/directives.module.d.ts +5 -6
- package/lib/kms-ngx-ui-presentational.module.d.ts +19 -19
- package/lib/pipes/custom-pipes.module.d.ts +6 -10
- package/lib/ui/generic-dialog/generic-dialog.component.d.ts +1 -1
- package/lib/ui/image-slider/image-slider.component.d.ts +3 -50
- package/lib/ui/tooltip/tooltip.component.d.ts +6 -0
- package/package.json +2 -3
- package/public-api.d.ts +1 -5
- package/src/lib/ui/image-slider/image-slider.component.scss +42 -209
- package/src/lib/ui/tooltip/tooltip.component.scss +27 -0
- package/esm2022/lib/directives/mousewheel.directive.mjs +0 -56
- package/esm2022/lib/pipes/decode-uri.pipe.mjs +0 -19
- package/esm2022/lib/pipes/encode-uri.pipe.mjs +0 -19
- package/esm2022/lib/pipes/safe-style.pipe.mjs +0 -23
- package/esm2022/lib/pipes/to-number.pipe.mjs +0 -23
- package/lib/directives/mousewheel.directive.d.ts +0 -15
- package/lib/pipes/decode-uri.pipe.d.ts +0 -10
- package/lib/pipes/encode-uri.pipe.d.ts +0 -10
- package/lib/pipes/safe-style.pipe.d.ts +0 -13
- package/lib/pipes/to-number.pipe.d.ts +0 -10
|
@@ -1,173 +1,24 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @copyright FLYACTS GmbH 2019
|
|
3
3
|
*/
|
|
4
|
-
import { Component, EventEmitter,
|
|
5
|
-
import {
|
|
4
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
5
|
+
import { register } from 'swiper/element/bundle';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/
|
|
8
|
-
|
|
9
|
-
import * as i3 from "@angular/cdk/drag-drop";
|
|
10
|
-
import * as i4 from "@angular/material/menu";
|
|
11
|
-
import * as i5 from "../../directives/swipe.directive";
|
|
12
|
-
import * as i6 from "ngx-useful-swiper";
|
|
13
|
-
import * as i7 from "../icon/icon.component";
|
|
14
|
-
import * as i8 from "@ngx-translate/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
register();
|
|
15
9
|
export class ImageSliderComponent {
|
|
16
|
-
constructor(
|
|
17
|
-
this.sanitizer = sanitizer;
|
|
10
|
+
constructor() {
|
|
18
11
|
this.editMode = false;
|
|
19
12
|
this.orderChanged = new EventEmitter();
|
|
20
13
|
this.deleteImageEvent = new EventEmitter();
|
|
21
|
-
/**
|
|
22
|
-
* Optional: Define Swipe behaviour configuration.
|
|
23
|
-
* Default is 10% for the threshold definition until a swipe triggers next/previous slide.
|
|
24
|
-
*/
|
|
25
|
-
this.swipeConfig = {
|
|
26
|
-
swipeThreshold: 5,
|
|
27
|
-
swipeThresholdType: '%',
|
|
28
|
-
swipeLocalPosition: true,
|
|
29
|
-
};
|
|
30
|
-
this.selectedSlide = 0;
|
|
31
|
-
this.isLastClickedInSliderImage = false;
|
|
32
|
-
this.config = {
|
|
33
|
-
initialSlide: 0,
|
|
34
|
-
slidesPerView: 3,
|
|
35
|
-
navigation: {
|
|
36
|
-
nextEl: '.swiper-button-next',
|
|
37
|
-
prevEl: '.swiper-button-prev',
|
|
38
|
-
},
|
|
39
|
-
watchOverflow: true,
|
|
40
|
-
autoHeight: true,
|
|
41
|
-
allowTouchMove: false,
|
|
42
|
-
spaceBetween: 30,
|
|
43
|
-
on: {
|
|
44
|
-
slideChange: () => {
|
|
45
|
-
// do something
|
|
46
|
-
},
|
|
47
|
-
slideChangeTransitionEnd: () => {
|
|
48
|
-
// do something
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
14
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// TODO use Pipe safeStyle
|
|
56
|
-
this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
// !TODO
|
|
60
|
-
onKeydownHandler(event) {
|
|
61
|
-
if (event.key === 'ArrowRight') {
|
|
62
|
-
this.nextSlide();
|
|
63
|
-
}
|
|
64
|
-
if (event.key === 'ArrowLeft') {
|
|
65
|
-
this.previousSlide();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Slide follows the finger or mouse according to it´s move delta.
|
|
70
|
-
* @param event SwipeMoveEvent
|
|
71
|
-
*/
|
|
72
|
-
handleMoveEvent(event) {
|
|
73
|
-
// certain move threshold needs to be reached
|
|
74
|
-
if (!event.thresholdWasReached) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.config.direction = event.direction === 1 ? 'horizontal' : 'vertical';
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Mouse up or slide container was left.
|
|
81
|
-
* @param event SwipeReleaseEvent
|
|
82
|
-
*/
|
|
83
|
-
handleReleaseEvent(event) {
|
|
84
|
-
if (!event.thresholdWasReached) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// Just do if user clicked to slide on image and not on arrow or other element
|
|
88
|
-
if (!this.isLastClickedInSliderImage) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (event.direction === 1) {
|
|
92
|
-
this.previousSlide();
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this.nextSlide();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
lastClicked() {
|
|
99
|
-
this.isLastClickedInSliderImage = true;
|
|
100
|
-
}
|
|
101
|
-
noLastClicked() {
|
|
102
|
-
this.isLastClickedInSliderImage = false;
|
|
103
|
-
}
|
|
104
|
-
scrollLeft() {
|
|
105
|
-
this.previousSlide();
|
|
106
|
-
}
|
|
107
|
-
scrollRight() {
|
|
108
|
-
this.nextSlide();
|
|
109
|
-
}
|
|
110
|
-
nextSlide() {
|
|
111
|
-
if (this.slides && this.selectedSlide < this.slides.length - 1) {
|
|
112
|
-
if (this.usefulSwiper) {
|
|
113
|
-
this.usefulSwiper.swiper.slideNext();
|
|
114
|
-
}
|
|
115
|
-
this.openSlide(this.selectedSlide + 1);
|
|
116
|
-
}
|
|
117
|
-
this.isLastClickedInSliderImage = false;
|
|
118
|
-
}
|
|
119
|
-
previousSlide() {
|
|
120
|
-
if (this.selectedSlide > 0) {
|
|
121
|
-
if (this.usefulSwiper) {
|
|
122
|
-
this.usefulSwiper.swiper.slidePrev();
|
|
123
|
-
}
|
|
124
|
-
this.openSlide(this.selectedSlide - 1);
|
|
125
|
-
}
|
|
126
|
-
this.isLastClickedInSliderImage = false;
|
|
127
|
-
}
|
|
128
|
-
slideTo(index) {
|
|
129
|
-
if (this.usefulSwiper) {
|
|
130
|
-
this.usefulSwiper.swiper.slideTo(index);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
openSlide(number) {
|
|
134
|
-
if (this.slides && number < this.slides.length && number >= 0) {
|
|
135
|
-
this.selectedSlide = number;
|
|
136
|
-
// TODO use Pipe safeStyle
|
|
137
|
-
this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[number] || ')');
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
ngOnChanges(_changes) {
|
|
141
|
-
if (_changes.slides) {
|
|
142
|
-
if (this.slides) {
|
|
143
|
-
// TODO use Pipe safeStyle
|
|
144
|
-
this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Re-order slides and notify parent component
|
|
150
|
-
*/
|
|
151
|
-
drop(event) {
|
|
152
|
-
if (this.slides && this.imagesTOSave) {
|
|
153
|
-
moveItemInArray(this.slides, event.previousIndex, event.currentIndex);
|
|
154
|
-
moveItemInArray(this.imagesTOSave, event.previousIndex, event.currentIndex);
|
|
155
|
-
this.orderChanged.emit(this.imagesTOSave);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Send image index to parent to perform delete
|
|
160
|
-
*/
|
|
161
|
-
deleteImage(index) {
|
|
162
|
-
this.deleteImageEvent.emit(index);
|
|
163
|
-
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageSliderComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageSliderComponent, selector: "kms-image-slider", inputs: { slides: "slides", editMode: "editMode", imagesTOSave: "imagesTOSave", swipeConfig: "swipeConfig" }, outputs: { orderChanged: "orderChanged", deleteImageEvent: "deleteImageEvent" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "usefulSwiper", first: true, predicate: ["usefulSwiper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"all-wrapper\">\n <!--(swiperight)=\"previousSlide()\" (swipeleft)=\"nextSlide()\"-->\n <div\n class=\"swiper-bigImage\"\n [style.backgroundImage]=\"selectedSlideImage\"\n [swipeDirective]=\"swipeConfig\"\n (moveEvent)=\"handleMoveEvent($event)\"\n (releaseEvent)=\"handleReleaseEvent($event)\"\n (mouseup)=\"lastClicked()\"\n (mouseout)=\"noLastClicked()\"\n ></div>\n\n <ng-content select=\"[description]\"></ng-content>\n\n <div class=\"swiper-holder\">\n <!--\n (mouseWheelUp)=\"scrollLeft($event)\"\n (mouseWheelDown)=\"scrollRight($event)\"\n -->\n\n <swiper [config]=\"config\" #usefulSwiper>\n <div\n class=\"swiper-wrapper\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n cdkDropListOrientation=\"horizontal\"\n >\n <div\n class=\"swiper-slide\"\n *ngFor=\"let slide of slides; let index = index\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode\"\n >\n <button mat-menu-item *ngIf=\"editMode\" (click)=\"deleteImage(index)\">\n <kms-icon icon=\"trash\"></kms-icon>\n </button>\n <div\n class=\"img\"\n (click)=\"openSlide(index)\"\n [style.backgroundImage]=\"\n sanitizer.bypassSecurityTrustStyle('url(' + slide + ')')\n \"\n [ngClass]=\"{ active: index === selectedSlide }\"\n ></div>\n\n <div class=\"default-image\">\n {{ \"common.defaultImage\" | translate }}\n </div>\n </div>\n </div>\n </swiper>\n\n <button\n class=\"swiper-button-next\"\n (click)=\"nextSlide()\"\n *ngIf=\"slides?.length > 3\"\n > </button>\n <button\n class=\"swiper-button-prev\"\n (click)=\"previousSlide()\"\n *ngIf=\"slides?.length > 3\"\n > </button>\n\n <div\n class=\"swiper-button-next2\"\n *ngIf=\"slides?.length > 1\"\n (click)=\"nextSlide()\"\n >\n <kms-icon\n icon=\"chevron-right\"\n [iconClass]=\"{\n 'color-disabled': selectedSlide == slides?.length - 1,\n 'color-primary': true\n }\"\n ></kms-icon>\n </div>\n <div\n class=\"swiper-button-prev2\"\n *ngIf=\"slides?.length > 1\"\n (click)=\"previousSlide()\"\n >\n <kms-icon\n icon=\"chevron-left\"\n [iconClass]=\"{\n 'color-disabled': selectedSlide == 0,\n 'color-primary': true\n }\"\n ></kms-icon>\n </div>\n </div>\n\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.SwipeDirective, selector: "[swipeDirective]", inputs: ["swipeDirective"], outputs: ["moveEvent", "releaseEvent"] }, { kind: "component", type: i6.SwiperComponent, selector: "swiper", inputs: ["initialize", "config"] }, { kind: "component", type: i7.IconComponent, selector: "kms-icon", inputs: ["icon", "iconClass", "iconStyle", "iconSize", "size", "dontUseSprite"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageSliderComponent, selector: "kms-image-slider", inputs: { slides: "slides", editMode: "editMode", imagesTOSave: "imagesTOSave" }, outputs: { orderChanged: "orderChanged", deleteImageEvent: "deleteImageEvent" }, ngImport: i0, template: "<div class=\"image-slider\">\n <swiper-container\n class=\"image-slider__swiper-container\"\n thumbs-swiper=\".image-slider__swiper-preview-container\"\n space-between=\"10\"\n navigation=\"true\"\n >\n <swiper-slide *ngFor=\"let slide of slides; let index = index\">\n <img [src]=\"slide\" />\n </swiper-slide>\n </swiper-container>\n\n <ng-content select=\"[description]\"></ng-content>\n\n <swiper-container\n class=\"image-slider__swiper-preview-container\"\n space-between=\"25\"\n slides-per-view=\"4\"\n free-mode=\"true\"\n watch-slides-progress=\"true\"\n >\n <swiper-slide *ngFor=\"let slide of slides; let index = index\">\n <img [src]=\"slide\" />\n </swiper-slide>\n </swiper-container>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
166
17
|
}
|
|
167
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageSliderComponent, decorators: [{
|
|
168
19
|
type: Component,
|
|
169
|
-
args: [{ selector: 'kms-image-slider', template: "<div class=\"
|
|
170
|
-
}],
|
|
20
|
+
args: [{ selector: 'kms-image-slider', template: "<div class=\"image-slider\">\n <swiper-container\n class=\"image-slider__swiper-container\"\n thumbs-swiper=\".image-slider__swiper-preview-container\"\n space-between=\"10\"\n navigation=\"true\"\n >\n <swiper-slide *ngFor=\"let slide of slides; let index = index\">\n <img [src]=\"slide\" />\n </swiper-slide>\n </swiper-container>\n\n <ng-content select=\"[description]\"></ng-content>\n\n <swiper-container\n class=\"image-slider__swiper-preview-container\"\n space-between=\"25\"\n slides-per-view=\"4\"\n free-mode=\"true\"\n watch-slides-progress=\"true\"\n >\n <swiper-slide *ngFor=\"let slide of slides; let index = index\">\n <img [src]=\"slide\" />\n </swiper-slide>\n </swiper-container>\n <ng-content></ng-content>\n</div>\n" }]
|
|
21
|
+
}], propDecorators: { slides: [{
|
|
171
22
|
type: Input
|
|
172
23
|
}], editMode: [{
|
|
173
24
|
type: Input
|
|
@@ -177,13 +28,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
177
28
|
type: Output
|
|
178
29
|
}], deleteImageEvent: [{
|
|
179
30
|
type: Output
|
|
180
|
-
}], swipeConfig: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], usefulSwiper: [{
|
|
183
|
-
type: ViewChild,
|
|
184
|
-
args: ['usefulSwiper']
|
|
185
|
-
}], onKeydownHandler: [{
|
|
186
|
-
type: HostListener,
|
|
187
|
-
args: ['document:keydown', ['$event']]
|
|
188
31
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9pbWFnZS1zbGlkZXIvaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9pbWFnZS1zbGlkZXIvaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQWF0RSxNQUFNLE9BQU8sb0JBQW9CO0lBOEMvQixZQUFtQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBNUNqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGlCQUFZLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEUscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEU7OztXQUdHO1FBQ00sZ0JBQVcsR0FBaUI7WUFDbkMsY0FBYyxFQUFFLENBQUM7WUFDakIsa0JBQWtCLEVBQUUsR0FBRztZQUN2QixrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCLENBQUM7UUFFSyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUlsQiwrQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFJMUMsV0FBTSxHQUFrQjtZQUN0QixZQUFZLEVBQUUsQ0FBQztZQUNmLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixNQUFNLEVBQUUscUJBQXFC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QUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RFLGVBQWUsQ0FDYixJQUFJLENBQUMsWUFBWSxFQUNqQixLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsWUFBWSxDQUNuQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQTFMVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixtY0NoQ2pDLG9rRkE2RkE7OzRGRDdEYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO21HQUtuQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU1FLFdBQVc7c0JBQW5CLEtBQUs7Z0JBWXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFvQ3FCLGdCQUFnQjtzQkFBN0QsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGNvcHlyaWdodCBGTFlBQ1RTIEdtYkggMjAxOVxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgU3dpcGVyQ29tcG9uZW50IH0gZnJvbSAnbmd4LXVzZWZ1bC1zd2lwZXInO1xuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBJbWFnZVNuaXBwZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW1hZ2Utc25pcHBldC5tb2RlbCc7XG5pbXBvcnQge1xuICBTd2lwZU1vdmVFdmVudCxcbiAgU3dpcGVPcHRpb25zLFxuICBTd2lwZVJlbGVhc2VFdmVudCxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zd2lwZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ttcy1pbWFnZS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzbGlkZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBlZGl0TW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBpbWFnZXNUT1NhdmU6IEltYWdlU25pcHBldFtdIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgb3JkZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SW1hZ2VTbmlwcGV0W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlSW1hZ2VFdmVudDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBEZWZpbmUgU3dpcGUgYmVoYXZpb3VyIGNvbmZpZ3VyYXRpb24uXG4gICAqIERlZmF1bHQgaXMgMTAlIGZvciB0aGUgdGhyZXNob2xkIGRlZmluaXRpb24gdW50aWwgYSBzd2lwZSB0cmlnZ2VycyBuZXh0L3ByZXZpb3VzIHNsaWRlLlxuICAgKi9cbiAgQElucHV0KCkgc3dpcGVDb25maWc6IFN3aXBlT3B0aW9ucyA9IHtcbiAgICBzd2lwZVRocmVzaG9sZDogNSxcbiAgICBzd2lwZVRocmVzaG9sZFR5cGU6ICclJyxcbiAgICBzd2lwZUxvY2FsUG9zaXRpb246IHRydWUsXG4gIH07XG5cbiAgcHVibGljIHNlbGVjdGVkU2xpZGUgPSAwO1xuICBwdWJsaWMgY2hlY2tlZEltYWdlSW5kZXg/OiBudW1iZXI7XG5cbiAgcHVibGljIHNlbGVjdGVkU2xpZGVJbWFnZTogU2FmZVN0eWxlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaXNMYXN0Q2xpY2tlZEluU2xpZGVySW1hZ2UgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd1c2VmdWxTd2lwZXInKSB1c2VmdWxTd2lwZXI6IFN3aXBlckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBjb25maWc6IFN3aXBlck9wdGlvbnMgPSB7XG4gICAgaW5pdGlhbFNsaWRlOiAwLFxuICAgIHNsaWRlc1BlclZpZXc6IDMsXG4gICAgbmF2aWdhdGlvbjoge1xuICAgICAgbmV4dEVsOiAnLnN3aXBlci1idXR0b24tbmV4dCcsXG4gICAgICBwcmV2RWw6ICcuc3dpcGVyLWJ1dHRvbi1wcmV2JyxcbiAgICB9LFxuICAgIHdhdGNoT3ZlcmZsb3c6IHRydWUsXG4gICAgYXV0b0hlaWdodDogdHJ1ZSxcbiAgICBhbGxvd1RvdWNoTW92ZTogZmFsc2UsXG4gICAgc3BhY2VCZXR3ZWVuOiAzMCxcbiAgICBvbjoge1xuICAgICAgc2xpZGVDaGFuZ2U6ICgpID0+IHtcbiAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICB9LFxuICAgICAgc2xpZGVDaGFuZ2VUcmFuc2l0aW9uRW5kOiAoKSA9PiB7XG4gICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zbGlkZXMpIHtcbiAgICAgIC8vIFRPRE8gdXNlIFBpcGUgc2FmZVN0eWxlXG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRTbGlkZUltYWdlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgICAndXJsKCcgKyB0aGlzLnNsaWRlc1swXSArICcpJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyAhVE9ET1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudFxuICApIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICB0aGlzLnByZXZpb3VzU2xpZGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2xpZGUgZm9sbG93cyB0aGUgZmluZ2VyIG9yIG1vdXNlIGFjY29yZGluZyB0byBpdMK0cyBtb3ZlIGRlbHRhLlxuICAgKiBAcGFyYW0gZXZlbnQgU3dpcGVNb3ZlRXZlbnRcbiAgICovXG4gIGhhbmRsZU1vdmVFdmVudChldmVudDogU3dpcGVNb3ZlRXZlbnQpIHtcbiAgICAvLyBjZXJ0YWluIG1vdmUgdGhyZXNob2xkIG5lZWRzIHRvIGJlIHJlYWNoZWRcbiAgICBpZiAoIWV2ZW50LnRocmVzaG9sZFdhc1JlYWNoZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25maWcuZGlyZWN0aW9uID0gZXZlbnQuZGlyZWN0aW9uID09PSAxID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3VzZSB1cCBvciBzbGlkZSBjb250YWluZXIgd2FzIGxlZnQuXG4gICAqIEBwYXJhbSBldmVudCBTd2lwZVJlbGVhc2VFdmVudFxuICAgKi9cbiAgaGFuZGxlUmVsZWFzZUV2ZW50KGV2ZW50OiBTd2lwZVJlbGVhc2VFdmVudCkge1xuICAgIGlmICghZXZlbnQudGhyZXNob2xkV2FzUmVhY2hlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBKdXN0IGRvIGlmIHVzZXIgY2xpY2tlZCB0byBzbGlkZSBvbiBpbWFnZSBhbmQgbm90IG9uIGFycm93IG9yIG90aGVyIGVsZW1lbnRcbiAgICBpZiAoIXRoaXMuaXNMYXN0Q2xpY2tlZEluU2xpZGVySW1hZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmRpcmVjdGlvbiA9PT0gMSkge1xuICAgICAgdGhpcy5wcmV2aW91c1NsaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgbGFzdENsaWNrZWQoKSB7XG4gICAgdGhpcy5pc0xhc3RDbGlja2VkSW5TbGlkZXJJbWFnZSA9IHRydWU7XG4gIH1cblxuICBub0xhc3RDbGlja2VkKCkge1xuICAgIHRoaXMuaXNMYXN0Q2xpY2tlZEluU2xpZGVySW1hZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHNjcm9sbExlZnQoKSB7XG4gICAgdGhpcy5wcmV2aW91c1NsaWRlKCk7XG4gIH1cblxuICBzY3JvbGxSaWdodCgpIHtcbiAgICB0aGlzLm5leHRTbGlkZSgpO1xuICB9XG5cbiAgbmV4dFNsaWRlKCkge1xuICAgIGlmICh0aGlzLnNsaWRlcyAmJiB0aGlzLnNlbGVjdGVkU2xpZGUgPCB0aGlzLnNsaWRlcy5sZW5ndGggLSAxKSB7XG4gICAgICBpZiAodGhpcy51c2VmdWxTd2lwZXIpIHtcbiAgICAgICAgdGhpcy51c2VmdWxTd2lwZXIuc3dpcGVyLnNsaWRlTmV4dCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGVuU2xpZGUodGhpcy5zZWxlY3RlZFNsaWRlICsgMSk7XG4gICAgfVxuICAgIHRoaXMuaXNMYXN0Q2xpY2tlZEluU2xpZGVySW1hZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHByZXZpb3VzU2xpZGUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTbGlkZSA+IDApIHtcbiAgICAgIGlmICh0aGlzLnVzZWZ1bFN3aXBlcikge1xuICAgICAgICB0aGlzLnVzZWZ1bFN3aXBlci5zd2lwZXIuc2xpZGVQcmV2KCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW5TbGlkZSh0aGlzLnNlbGVjdGVkU2xpZGUgLSAxKTtcbiAgICB9XG4gICAgdGhpcy5pc0xhc3RDbGlja2VkSW5TbGlkZXJJbWFnZSA9IGZhbHNlO1xuICB9XG5cbiAgc2xpZGVUbyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMudXNlZnVsU3dpcGVyKSB7XG4gICAgICB0aGlzLnVzZWZ1bFN3aXBlci5zd2lwZXIuc2xpZGVUbyhpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgb3BlblNsaWRlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc2xpZGVzICYmIG51bWJlciA8IHRoaXMuc2xpZGVzLmxlbmd0aCAmJiBudW1iZXIgPj0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNsaWRlID0gbnVtYmVyO1xuICAgICAgLy8gVE9ETyB1c2UgUGlwZSBzYWZlU3R5bGVcblxuICAgICAgdGhpcy5zZWxlY3RlZFNsaWRlSW1hZ2UgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoXG4gICAgICAgICd1cmwoJyArIHRoaXMuc2xpZGVzW251bWJlcl0gfHwgJyknXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKF9jaGFuZ2VzLnNsaWRlcykge1xuICAgICAgaWYgKHRoaXMuc2xpZGVzKSB7XG4gICAgICAgIC8vIFRPRE8gdXNlIFBpcGUgc2FmZVN0eWxlXG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFNsaWRlSW1hZ2UgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoXG4gICAgICAgICAgJ3VybCgnICsgdGhpcy5zbGlkZXNbMF0gKyAnKSdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmUtb3JkZXIgc2xpZGVzIGFuZCBub3RpZnkgcGFyZW50IGNvbXBvbmVudFxuICAgKi9cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgaWYgKHRoaXMuc2xpZGVzICYmIHRoaXMuaW1hZ2VzVE9TYXZlKSB7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5zbGlkZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgIHRoaXMuaW1hZ2VzVE9TYXZlLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICk7XG4gICAgICB0aGlzLm9yZGVyQ2hhbmdlZC5lbWl0KHRoaXMuaW1hZ2VzVE9TYXZlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbWFnZSBpbmRleCB0byBwYXJlbnQgdG8gcGVyZm9ybSBkZWxldGVcbiAgICovXG4gIGRlbGV0ZUltYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRlbGV0ZUltYWdlRXZlbnQuZW1pdChpbmRleCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhbGwtd3JhcHBlclwiPlxuICA8IS0tKHN3aXBlcmlnaHQpPVwicHJldmlvdXNTbGlkZSgpXCIgKHN3aXBlbGVmdCk9XCJuZXh0U2xpZGUoKVwiLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cInN3aXBlci1iaWdJbWFnZVwiXG4gICAgW3N0eWxlLmJhY2tncm91bmRJbWFnZV09XCJzZWxlY3RlZFNsaWRlSW1hZ2VcIlxuICAgIFtzd2lwZURpcmVjdGl2ZV09XCJzd2lwZUNvbmZpZ1wiXG4gICAgKG1vdmVFdmVudCk9XCJoYW5kbGVNb3ZlRXZlbnQoJGV2ZW50KVwiXG4gICAgKHJlbGVhc2VFdmVudCk9XCJoYW5kbGVSZWxlYXNlRXZlbnQoJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwibGFzdENsaWNrZWQoKVwiXG4gICAgKG1vdXNlb3V0KT1cIm5vTGFzdENsaWNrZWQoKVwiXG4gID48L2Rpdj5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuXG4gIDxkaXYgY2xhc3M9XCJzd2lwZXItaG9sZGVyXCI+XG4gICAgPCEtLVxuICAgICAgICAobW91c2VXaGVlbFVwKT1cInNjcm9sbExlZnQoJGV2ZW50KVwiXG4gICAgICAgIChtb3VzZVdoZWVsRG93bik9XCJzY3JvbGxSaWdodCgkZXZlbnQpXCJcbiAgICAgICAgLS0+XG5cbiAgICA8c3dpcGVyIFtjb25maWddPVwiY29uZmlnXCIgI3VzZWZ1bFN3aXBlcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzd2lwZXItd3JhcHBlclwiXG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzd2lwZXItc2xpZGVcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzbGlkZSBvZiBzbGlkZXM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdE1vZGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0lmPVwiZWRpdE1vZGVcIiAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoaW5kZXgpXCI+XG4gICAgICAgICAgICA8a21zLWljb24gaWNvbj1cInRyYXNoXCI+PC9rbXMtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImltZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblNsaWRlKGluZGV4KVwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cIlxuICAgICAgICAgICAgICBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKCd1cmwoJyArIHNsaWRlICsgJyknKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpbmRleCA9PT0gc2VsZWN0ZWRTbGlkZSB9XCJcbiAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1pbWFnZVwiPlxuICAgICAgICAgICAge3sgXCJjb21tb24uZGVmYXVsdEltYWdlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3N3aXBlcj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0XCJcbiAgICAgIChjbGljayk9XCJuZXh0U2xpZGUoKVwiXG4gICAgICAqbmdJZj1cInNsaWRlcz8ubGVuZ3RoID4gM1wiXG4gICAgPiZuYnNwOzwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1wcmV2XCJcbiAgICAgIChjbGljayk9XCJwcmV2aW91c1NsaWRlKClcIlxuICAgICAgKm5nSWY9XCJzbGlkZXM/Lmxlbmd0aCA+IDNcIlxuICAgID4mbmJzcDs8L2J1dHRvbj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0MlwiXG4gICAgICAqbmdJZj1cInNsaWRlcz8ubGVuZ3RoID4gMVwiXG4gICAgICAoY2xpY2spPVwibmV4dFNsaWRlKClcIlxuICAgID5cbiAgICAgIDxrbXMtaWNvblxuICAgICAgICBpY29uPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgIFtpY29uQ2xhc3NdPVwie1xuICAgICAgICAgICdjb2xvci1kaXNhYmxlZCc6IHNlbGVjdGVkU2xpZGUgPT0gc2xpZGVzPy5sZW5ndGggLSAxLFxuICAgICAgICAgICdjb2xvci1wcmltYXJ5JzogdHJ1ZVxuICAgICAgICB9XCJcbiAgICAgID48L2ttcy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1wcmV2MlwiXG4gICAgICAqbmdJZj1cInNsaWRlcz8ubGVuZ3RoID4gMVwiXG4gICAgICAoY2xpY2spPVwicHJldmlvdXNTbGlkZSgpXCJcbiAgICA+XG4gICAgICA8a21zLWljb25cbiAgICAgICAgaWNvbj1cImNoZXZyb24tbGVmdFwiXG4gICAgICAgIFtpY29uQ2xhc3NdPVwie1xuICAgICAgICAgICdjb2xvci1kaXNhYmxlZCc6IHNlbGVjdGVkU2xpZGUgPT0gMCxcbiAgICAgICAgICAnY29sb3ItcHJpbWFyeSc6IHRydWVcbiAgICAgICAgfVwiXG4gICAgICA+PC9rbXMtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9pbWFnZS1zbGlkZXIvaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9pbWFnZS1zbGlkZXIvaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7OztBQUVoRCxRQUFRLEVBQUUsQ0FBQztBQU1YLE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFNYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGlCQUFZLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEUscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7S0FDekU7K0dBTlksb0JBQW9CO21HQUFwQixvQkFBb0IsMk5DZmpDLDR4QkEyQkE7OzRGRFphLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSxrQkFBa0I7OEJBSW5CLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBjb3B5cmlnaHQgRkxZQUNUUyBHbWJIIDIwMTlcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbWFnZVNuaXBwZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW1hZ2Utc25pcHBldC5tb2RlbCc7XG5pbXBvcnQgeyByZWdpc3RlciB9IGZyb20gJ3N3aXBlci9lbGVtZW50L2J1bmRsZSdcblxucmVnaXN0ZXIoKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbXMtaW1hZ2Utc2xpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VTbGlkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNsaWRlczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpbWFnZXNUT1NhdmU6IEltYWdlU25pcHBldFtdIHwgdW5kZWZpbmVkO1xuICAgIEBPdXRwdXQoKSBvcmRlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbWFnZVNuaXBwZXRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRlbGV0ZUltYWdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImltYWdlLXNsaWRlclwiPlxuICA8c3dpcGVyLWNvbnRhaW5lclxuICAgIGNsYXNzPVwiaW1hZ2Utc2xpZGVyX19zd2lwZXItY29udGFpbmVyXCJcbiAgICB0aHVtYnMtc3dpcGVyPVwiLmltYWdlLXNsaWRlcl9fc3dpcGVyLXByZXZpZXctY29udGFpbmVyXCJcbiAgICBzcGFjZS1iZXR3ZWVuPVwiMTBcIlxuICAgIG5hdmlnYXRpb249XCJ0cnVlXCJcbiAgPlxuICAgIDxzd2lwZXItc2xpZGUgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHNsaWRlczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxpbWcgW3NyY109XCJzbGlkZVwiIC8+XG4gICAgPC9zd2lwZXItc2xpZGU+XG4gIDwvc3dpcGVyLWNvbnRhaW5lcj5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuXG4gIDxzd2lwZXItY29udGFpbmVyXG4gICAgY2xhc3M9XCJpbWFnZS1zbGlkZXJfX3N3aXBlci1wcmV2aWV3LWNvbnRhaW5lclwiXG4gICAgc3BhY2UtYmV0d2Vlbj1cIjI1XCJcbiAgICBzbGlkZXMtcGVyLXZpZXc9XCI0XCJcbiAgICBmcmVlLW1vZGU9XCJ0cnVlXCJcbiAgICB3YXRjaC1zbGlkZXMtcHJvZ3Jlc3M9XCJ0cnVlXCJcbiAgPlxuICAgIDxzd2lwZXItc2xpZGUgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHNsaWRlczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxpbWcgW3NyY109XCJzbGlkZVwiIC8+XG4gICAgPC9zd2lwZXItc2xpZGU+XG4gIDwvc3dpcGVyLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TooltipComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.tooltipTitle = "";
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TooltipComponent, selector: "kms-tooltip-element", inputs: { tooltipTitle: "tooltipTitle" }, ngImport: i0, template: "<ng-content></ng-content>", styles: ["[kmsTooltip]{position:relative}\n"] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'kms-tooltip-element', template: "<ng-content></ng-content>", styles: ["[kmsTooltip]{position:relative}\n"] }]
|
|
13
|
+
}], propDecorators: { tooltipTitle: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}] } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbXMtbmd4LXVpLXByZXNlbnRhdGlvbmFsL3NyYy9saWIvdWkvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFNYSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztLQUM5QjsrR0FGWSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxR0NQN0IsMkJBQXlCOzs0RkRPWixnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0kscUJBQXFCOzhCQUt0QixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ttcy10b29sdGlwLWVsZW1lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdG9vbHRpcFRpdGxlID0gXCJcIjtcbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -28,22 +28,18 @@ export * from './lib/ui/salutation-radiogroup/salutation-radiogroup.component';
|
|
|
28
28
|
export * from './lib/ui/time-input/time-input.component';
|
|
29
29
|
export * from './lib/ui/tooltip-icon/tooltip-icon.component';
|
|
30
30
|
export * from './lib/ui/yes-no-radiogroup/yes-no-radiogroup.component';
|
|
31
|
-
export * from './lib/directives/mousewheel.directive';
|
|
32
31
|
export * from './lib/directives/sum-of-height.directive';
|
|
33
32
|
export * from './lib/directives/swipe.directive';
|
|
34
33
|
export * from './lib/directives/tooltip.directive';
|
|
35
|
-
export * from './lib/pipes/decode-uri.pipe';
|
|
36
|
-
export * from './lib/pipes/encode-uri.pipe';
|
|
37
34
|
export * from './lib/pipes/integer-currency.pipe';
|
|
38
35
|
export * from './lib/pipes/safe-html.pipe';
|
|
39
36
|
export * from './lib/pipes/safe-resource-url.pipe';
|
|
40
|
-
export * from './lib/pipes/safe-style.pipe';
|
|
41
37
|
export * from './lib/pipes/safe-url.pipe';
|
|
42
|
-
export * from './lib/pipes/to-number.pipe';
|
|
43
38
|
export * from './lib/pipes/trim.pipe';
|
|
44
39
|
export * from './lib/pipes/typeof.pipe';
|
|
45
40
|
export * from './lib/parent-components/actions.component';
|
|
46
41
|
export * from './lib/parent-components/form.component';
|
|
47
42
|
export * from './lib/services/viewport.service';
|
|
48
43
|
export * from './lib/ui/generic-dialog/generic-dialog.component';
|
|
49
|
-
|
|
44
|
+
export * from './lib/ui/tooltip/tooltip.component';
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsb0NBQW9DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva21zLW5neC11aS1wcmVzZW50YXRpb25hbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva21zLW5neC11aS1wcmVzZW50YXRpb25hbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva21zLW5neC11aS1wcmVzZW50YXRpb25hbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2N1c3RvbS1waXBlcy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWNvblNpemUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2FsdXRhdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL2NvbG9yLWlucHV0L2NvbG9yLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9kcm9wZG93bi1mcm9tLWRhdGEvZHJvcGRvd24tZnJvbS1kYXRhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9lbnVtLXJhZGlvZ3JvdXAvZW51bS1yYWRpb2dyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL2ZseW91dC9mbHlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvaW1hZ2Utc2xpZGVyL2ltYWdlLXNsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkva21zLWFjY29yZGlvbi1pdGVtL2ttcy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvbWFwL21hcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvcmFkaW9idXR0b24vcmFkaW9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL3NhbHV0YXRpb24tZHJvcGRvd24vc2FsdXRhdGlvbi1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvc2FsdXRhdGlvbi1yYWRpb2dyb3VwL3NhbHV0YXRpb24tcmFkaW9ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvdGltZS1pbnB1dC90aW1lLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS90b29sdGlwLWljb24vdG9vbHRpcC1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS95ZXMtbm8tcmFkaW9ncm91cC95ZXMtbm8tcmFkaW9ncm91cC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3N1bS1vZi1oZWlnaHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc3dpcGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9pbnRlZ2VyLWN1cnJlbmN5LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc2FmZS1yZXNvdXJjZS11cmwucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9zYWZlLXVybC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3RyaW0ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy90eXBlb2YucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhcmVudC1jb21wb25lbnRzL2FjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhcmVudC1jb21wb25lbnRzL2Zvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvZ2VuZXJpYy1kaWFsb2cvZ2VuZXJpYy1kaWFsb2cuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCdcblxuIl19
|