@datarailsshared/datarailsshared 1.6.73 → 1.6.77

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,28 +1,45 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Input, TemplateRef, } from '@angular/core';
3
- import { take as _take, takeRight as _takeRight } from 'lodash';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Input, QueryList, TemplateRef, ViewChild, ViewChildren, } from '@angular/core';
4
3
  import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/common";
7
6
  import * as i2 from "../dr-inputs/button/button.component";
8
- function DrGalleryComponent_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7
+ const _c0 = ["carouselContainer"];
8
+ const _c1 = ["carouselItem"];
9
+ function DrGalleryComponent_dr_button_0_Template(rf, ctx) { if (rf & 1) {
10
+ const _r5 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "dr-button", 5);
12
+ i0.ɵɵlistener("click", function DrGalleryComponent_dr_button_0_Template_dr_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.prev()); });
13
+ i0.ɵɵelementEnd();
14
+ } if (rf & 2) {
15
+ i0.ɵɵproperty("icon", "dr-icon-arrow-left");
16
+ } }
17
+ function DrGalleryComponent_div_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
9
18
  i0.ɵɵelementContainer(0);
10
19
  } }
11
- const _c0 = function (a0) { return { "dr-gallery-item_active": a0 }; };
12
- const _c1 = function (a0) { return { $implicit: a0 }; };
13
- function DrGalleryComponent_div_3_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelementStart(0, "div", 5);
15
- i0.ɵɵtemplate(1, DrGalleryComponent_div_3_ng_container_1_Template, 1, 0, "ng-container", 6);
20
+ const _c2 = function () { return {}; };
21
+ const _c3 = function (a0) { return { $implicit: a0 }; };
22
+ function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelementStart(0, "div", 6, 7);
24
+ i0.ɵɵtemplate(2, DrGalleryComponent_div_4_ng_container_2_Template, 1, 0, "ng-container", 8);
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const item_r6 = ctx.$implicit;
28
+ const i_r7 = ctx.index;
29
+ const ctx_r2 = i0.ɵɵnextContext();
30
+ i0.ɵɵstyleProp("transition", ctx_r2.transition);
31
+ i0.ɵɵclassProp("dr-gallery-item_active", ctx_r2.centerIndex === i_r7)("dr-gallery-item_fadein", ctx_r2.fadeIn && ctx_r2.centerIndex === i_r7 + 1);
32
+ i0.ɵɵproperty("ngStyle", ctx_r2.modeType === "loop" ? ctx_r2.getStyle() : i0.ɵɵpureFunction0(9, _c2));
33
+ i0.ɵɵadvance(2);
34
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(10, _c3, item_r6));
35
+ } }
36
+ function DrGalleryComponent_dr_button_5_Template(rf, ctx) { if (rf & 1) {
37
+ const _r11 = i0.ɵɵgetCurrentView();
38
+ i0.ɵɵelementStart(0, "dr-button", 9);
39
+ i0.ɵɵlistener("click", function DrGalleryComponent_dr_button_5_Template_dr_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.next()); });
16
40
  i0.ɵɵelementEnd();
17
41
  } if (rf & 2) {
18
- const item_r1 = ctx.$implicit;
19
- const i_r2 = ctx.index;
20
- const ctx_r0 = i0.ɵɵnextContext();
21
- i0.ɵɵstyleMap(ctx_r0.getStyle());
22
- i0.ɵɵstyleProp("transition", ctx_r0.transition);
23
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0, ctx_r0.centerIndex === i_r2));
24
- i0.ɵɵadvance(1);
25
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(9, _c1, item_r1));
42
+ i0.ɵɵproperty("iconSize", "24px")("icon", "dr-icon-arrow-right");
26
43
  } }
27
44
  export class DrGalleryComponent {
28
45
  set items(value) {
@@ -47,25 +64,66 @@ export class DrGalleryComponent {
47
64
  get centerIndex() {
48
65
  return this.itemsCount > 1 && this.itemsCount % 2 !== 0 ? this.activeIndex + Math.floor(this.itemsCount / 2) : null;
49
66
  }
50
- ngOnChanges() {
51
- this.activeIndex = this.itemsCount;
52
- this.initializeCarousel();
53
- this.updateTransform();
54
- }
55
67
  constructor(cdr) {
56
68
  this.cdr = cdr;
57
69
  this._items = [];
58
70
  this._itemsCount = 3;
59
71
  this.defaultTransition = '250ms ease-in-out';
60
72
  this.noTransition = '0ms';
73
+ this.modeType = 'loop';
74
+ this.isOutsideBtns = false;
75
+ this.fadeIn = false;
76
+ this.autoPlay = false;
77
+ this.autoplayInterval = 5000; //5 seconds
61
78
  this.activeIndex = 0;
62
79
  this.carouselItems = [];
63
- this.transform = `translateX(0%)`;
80
+ this.transform = 'translateX(0%)';
64
81
  this.transition = this.defaultTransition;
82
+ this.itemOffsets = [];
83
+ this.itemWidths = [];
84
+ }
85
+ ngAfterViewInit() {
86
+ // Wait for initial render
87
+ setTimeout(() => {
88
+ this.calculateItemOffsets();
89
+ this.updateTransform();
90
+ if (this.autoPlay) {
91
+ this.startAutoplay();
92
+ }
93
+ });
94
+ }
95
+ ngOnDestroy() {
96
+ this.clearAutoplay();
65
97
  }
66
98
  initializeCarousel() {
67
- this.carouselItems = [..._takeRight(this.items, this.itemsCount), ...this.items, ..._take(this.items, this.itemsCount)];
68
- this.updateTransform();
99
+ if (this.modeType === 'loop') {
100
+ this.carouselItems = [
101
+ ...this._items.slice(-this.itemsCount),
102
+ ...this._items,
103
+ ...this._items.slice(0, this.itemsCount),
104
+ ];
105
+ this.activeIndex = this.itemsCount;
106
+ }
107
+ else {
108
+ this.carouselItems = [...this._items];
109
+ this.activeIndex = 0;
110
+ }
111
+ setTimeout(() => {
112
+ this.calculateItemOffsets();
113
+ this.updateTransform();
114
+ });
115
+ }
116
+ calculateItemOffsets() {
117
+ this.itemOffsets = [];
118
+ this.itemWidths = [];
119
+ let offset = 0;
120
+ const elements = this.itemElements.toArray();
121
+ for (const el of elements) {
122
+ const width = el.nativeElement.offsetWidth;
123
+ this.itemOffsets.push(offset);
124
+ this.itemWidths.push(width);
125
+ offset += width;
126
+ }
69
127
  }
70
128
  getStyle() {
71
129
  const percent = `calc(${100 / this.itemsCount}%)`;
@@ -76,21 +134,62 @@ export class DrGalleryComponent {
76
134
  };
77
135
  }
78
136
  prev() {
79
- this.activeIndex--;
80
- this.transition = this.defaultTransition;
81
- this.updateTransform();
82
- if (this.activeIndex <= 0) {
83
- this.resetIndexAfterDelay(this.carouselItems.length - this.items.length);
137
+ if (this.modeType === 'loop') {
138
+ this.activeIndex--;
139
+ this.transition = this.defaultTransition;
140
+ this.updateTransform();
141
+ if (this.activeIndex <= 0) {
142
+ this.resetIndexAfterDelay(this.carouselItems.length - this.items.length);
143
+ }
144
+ }
145
+ else {
146
+ if (this.activeIndex > 0) {
147
+ this.activeIndex--;
148
+ this.updateTransform();
149
+ }
84
150
  }
85
151
  }
86
152
  next() {
87
- this.activeIndex++;
88
- this.transition = this.defaultTransition;
153
+ if (this.modeType === 'loop') {
154
+ this.activeIndex++;
155
+ this.transition = this.defaultTransition;
156
+ this.updateTransform();
157
+ if (this.activeIndex + this.itemsCount > this.carouselItems.length - 1) {
158
+ this.resetIndexAfterDelay(this.itemsCount);
159
+ }
160
+ }
161
+ else {
162
+ if (this.activeIndex + 1 < this.carouselItems.length) {
163
+ this.activeIndex++;
164
+ this.updateTransform();
165
+ }
166
+ else {
167
+ this.activeIndex = 0;
168
+ this.updateTransform();
169
+ }
170
+ }
171
+ }
172
+ navigate(index) {
173
+ this.activeIndex = index;
89
174
  this.updateTransform();
90
- if (this.activeIndex + this.itemsCount > this.carouselItems.length - 1) {
91
- this.resetIndexAfterDelay(this.itemsCount);
175
+ if (this.autoPlay) {
176
+ this.startAutoplay();
92
177
  }
93
178
  }
179
+ get canGoPrev() {
180
+ if (this.modeType === 'loop')
181
+ return true;
182
+ return !!(this.activeIndex > 0);
183
+ }
184
+ get canGoNext() {
185
+ if (this.modeType === 'loop')
186
+ return true;
187
+ const containerWidth = this.containerRef?.nativeElement?.offsetWidth || 0;
188
+ const currentOffset = this.itemOffsets[this.activeIndex] || 0;
189
+ const lastIndex = this.itemOffsets.length - 1;
190
+ const totalContentWidth = this.itemOffsets[lastIndex] + this.itemWidths[lastIndex];
191
+ return currentOffset + containerWidth < totalContentWidth - 1;
192
+ }
94
193
  resetIndexAfterDelay(newIndex) {
95
194
  setTimeout(() => {
96
195
  this.transition = this.noTransition;
@@ -99,46 +198,88 @@ export class DrGalleryComponent {
99
198
  }, 250);
100
199
  }
101
200
  updateTransform(skipTransition = false) {
102
- this.transform = `translateX(${-100 * (this.activeIndex / this.itemsCount)}%)`;
201
+ if (this.modeType === 'loop') {
202
+ this.transform = `translateX(${-100 * (this.activeIndex / this.itemsCount)}%)`;
203
+ }
204
+ else {
205
+ const offset = this.itemOffsets[this.activeIndex] || 0;
206
+ this.transform = `translateX(-${offset}px)`;
207
+ }
103
208
  if (skipTransition)
104
209
  this.transition = this.noTransition;
210
+ else
211
+ this.transition = this.defaultTransition;
105
212
  this.cdr.markForCheck();
106
213
  }
214
+ startAutoplay() {
215
+ this.clearAutoplay();
216
+ this.autoplayTimer = setInterval(() => {
217
+ this.next();
218
+ }, this.autoplayInterval);
219
+ }
220
+ clearAutoplay() {
221
+ if (this.autoplayTimer) {
222
+ clearInterval(this.autoplayTimer);
223
+ this.autoplayTimer = null;
224
+ }
225
+ }
107
226
  /** @nocollapse */ static { this.ɵfac = function DrGalleryComponent_Factory(t) { return new (t || DrGalleryComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
108
227
  /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrGalleryComponent, selectors: [["dr-gallery"]], contentQueries: function DrGalleryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
109
228
  i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
110
229
  } if (rf & 2) {
111
230
  let _t;
112
231
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);
113
- } }, inputs: { items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 8, consts: [["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_left", 3, "icon", "click"], [1, "dr-gallery-caroousel"], [1, "dr-gallery-items"], ["class", "dr-gallery-item", 3, "transition", "ngClass", "style", 4, "ngFor", "ngForOf"], ["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_right", 3, "iconSize", "icon", "click"], [1, "dr-gallery-item", 3, "ngClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrGalleryComponent_Template(rf, ctx) { if (rf & 1) {
114
- i0.ɵɵelementStart(0, "dr-button", 0);
115
- i0.ɵɵlistener("click", function DrGalleryComponent_Template_dr_button_click_0_listener() { return ctx.prev(); });
116
- i0.ɵɵelementEnd();
117
- i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
118
- i0.ɵɵtemplate(3, DrGalleryComponent_div_3_Template, 2, 11, "div", 3);
232
+ } }, viewQuery: function DrGalleryComponent_Query(rf, ctx) { if (rf & 1) {
233
+ i0.ɵɵviewQuery(_c0, 5);
234
+ i0.ɵɵviewQuery(_c1, 5);
235
+ } if (rf & 2) {
236
+ let _t;
237
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerRef = _t.first);
238
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemElements = _t);
239
+ } }, inputs: { modeType: "modeType", isOutsideBtns: "isOutsideBtns", fadeIn: "fadeIn", autoPlay: "autoPlay", autoplayInterval: "autoplayInterval", items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 12, consts: [["class", "dr-gallery-btn dr-gallery-btn_left", "theme", "icon", 3, "icon", "click", 4, "ngIf"], ["carouselContainer", ""], [1, "dr-gallery-items"], ["class", "dr-gallery-item", 3, "transition", "dr-gallery-item_active", "dr-gallery-item_fadein", "ngStyle", 4, "ngFor", "ngForOf"], ["class", "dr-gallery-btn dr-gallery-btn_right", "theme", "icon", 3, "iconSize", "icon", "click", 4, "ngIf"], ["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_left", 3, "icon", "click"], [1, "dr-gallery-item", 3, "ngStyle"], ["carouselItem", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["theme", "icon", 1, "dr-gallery-btn", "dr-gallery-btn_right", 3, "iconSize", "icon", "click"]], template: function DrGalleryComponent_Template(rf, ctx) { if (rf & 1) {
240
+ i0.ɵɵtemplate(0, DrGalleryComponent_dr_button_0_Template, 1, 1, "dr-button", 0);
241
+ i0.ɵɵelementStart(1, "div", null, 1)(3, "div", 2);
242
+ i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3, 12, "div", 3);
119
243
  i0.ɵɵelementEnd()();
120
- i0.ɵɵelementStart(4, "dr-button", 4);
121
- i0.ɵɵlistener("click", function DrGalleryComponent_Template_dr_button_click_4_listener() { return ctx.next(); });
122
- i0.ɵɵelementEnd();
244
+ i0.ɵɵtemplate(5, DrGalleryComponent_dr_button_5_Template, 1, 2, "dr-button", 4);
123
245
  } if (rf & 2) {
124
- i0.ɵɵproperty("icon", "dr-icon-arrow-left");
246
+ i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
247
+ i0.ɵɵadvance(1);
248
+ i0.ɵɵclassMapInterpolate1("dr-gallery-caroousel dr-gallery-caroousel_", ctx.modeType, "");
249
+ i0.ɵɵclassProp("dr-gallery-caroousel_fadein", ctx.fadeIn);
125
250
  i0.ɵɵadvance(2);
126
251
  i0.ɵɵstyleProp("transition", ctx.transition)("transform", ctx.transform);
127
252
  i0.ɵɵadvance(1);
128
253
  i0.ɵɵproperty("ngForOf", ctx.carouselItems);
129
254
  i0.ɵɵadvance(1);
130
- i0.ɵɵproperty("iconSize", "24px")("icon", "dr-icon-arrow-right");
131
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgTemplateOutlet, DrInputsModule, i2.DrButtonComponent], styles: [".dr-gallery-caroousel[_ngcontent-%COMP%]{display:block;position:relative;overflow:hidden}.dr-gallery-items[_ngcontent-%COMP%]{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item[_ngcontent-%COMP%]{box-sizing:border-box;position:relative;padding:42px 24px;margin-top:-8px;flex-grow:1;width:100%;min-height:240px}.dr-gallery-item_active[_ngcontent-%COMP%]{transform:scale(1.2)}.dr-gallery-btn[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:40px!important;height:40px!important}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{border-radius:50%}.dr-gallery-btn_left[_ngcontent-%COMP%]{left:0}.dr-gallery-btn_right[_ngcontent-%COMP%]{right:0}"], changeDetection: 0 }); }
255
+ i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
256
+ } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, DrInputsModule, i2.DrButtonComponent], styles: [".dr-gallery-caroousel[_ngcontent-%COMP%]{display:block;position:relative;overflow:hidden}.dr-gallery-caroousel.dr-gallery-caroousel_loop[_ngcontent-%COMP%] .dr-gallery-item[_ngcontent-%COMP%]{width:100%;min-height:240px}.dr-gallery-caroousel.dr-gallery-caroousel_loop[_ngcontent-%COMP%] .dr-gallery-item_active[_ngcontent-%COMP%]{transform:scale(1.2)}.dr-gallery-caroousel.dr-gallery-caroousel_fadein[_ngcontent-%COMP%] .dr-gallery-item[_ngcontent-%COMP%]{opacity:0}.dr-gallery-items[_ngcontent-%COMP%]{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item[_ngcontent-%COMP%]{box-sizing:border-box;position:relative;flex-grow:1;padding:42px 24px;margin-top:-8px}.dr-gallery-item_fadein[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .3s ease-in .25s forwards}.dr-gallery-btn[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:40px!important;height:40px!important}.dr-gallery-btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{border-radius:50%}.dr-gallery-btn_left[_ngcontent-%COMP%]{left:0}.dr-gallery-btn_right[_ngcontent-%COMP%]{right:0}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}"], changeDetection: 0 }); }
132
257
  }
133
258
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrGalleryComponent, [{
134
259
  type: Component,
135
- args: [{ selector: 'dr-gallery', imports: [CommonModule, DrInputsModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-button class=\"dr-gallery-btn dr-gallery-btn_left\" (click)=\"prev()\" theme=\"icon\" [icon]=\"'dr-icon-arrow-left'\"> </dr-button>\n<div class=\"dr-gallery-caroousel\">\n <div class=\"dr-gallery-items\" [style.transition]=\"transition\" [style.transform]=\"transform\">\n <div\n *ngFor=\"let item of carouselItems; let i = index\"\n class=\"dr-gallery-item\"\n [style.transition]=\"transition\"\n [ngClass]=\"{ 'dr-gallery-item_active': centerIndex === i }\"\n [style]=\"getStyle()\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: item }\"></ng-container>\n </div>\n </div>\n</div>\n\n<dr-button\n class=\"dr-gallery-btn dr-gallery-btn_right\"\n (click)=\"next()\"\n [iconSize]=\"'24px'\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-right'\"></dr-button>\n", styles: [".dr-gallery-caroousel{display:block;position:relative;overflow:hidden}.dr-gallery-items{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item{box-sizing:border-box;position:relative;padding:42px 24px;margin-top:-8px;flex-grow:1;width:100%;min-height:240px}.dr-gallery-item_active{transform:scale(1.2)}.dr-gallery-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn button{width:40px!important;height:40px!important}.dr-gallery-btn button:hover{border-radius:50%}.dr-gallery-btn_left{left:0}.dr-gallery-btn_right{right:0}\n"] }]
260
+ args: [{ selector: 'dr-gallery', imports: [CommonModule, DrInputsModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-button\n *ngIf=\"!isOutsideBtns\"\n class=\"dr-gallery-btn dr-gallery-btn_left\"\n (click)=\"prev()\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-left'\">\n</dr-button>\n\n<div\n #carouselContainer\n class=\"dr-gallery-caroousel dr-gallery-caroousel_{{ modeType }}\"\n [class.dr-gallery-caroousel_fadein]=\"fadeIn\">\n <div class=\"dr-gallery-items\" [style.transition]=\"transition\" [style.transform]=\"transform\">\n <div\n #carouselItem\n *ngFor=\"let item of carouselItems; let i = index\"\n class=\"dr-gallery-item\"\n [style.transition]=\"transition\"\n [class.dr-gallery-item_active]=\"centerIndex === i\"\n [class.dr-gallery-item_fadein]=\"fadeIn && centerIndex === i + 1\"\n [ngStyle]=\"modeType === 'loop' ? getStyle() : {}\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: item }\"></ng-container>\n </div>\n </div>\n</div>\n\n<dr-button\n *ngIf=\"!isOutsideBtns\"\n class=\"dr-gallery-btn dr-gallery-btn_right\"\n (click)=\"next()\"\n [iconSize]=\"'24px'\"\n theme=\"icon\"\n [icon]=\"'dr-icon-arrow-right'\">\n</dr-button>\n", styles: [".dr-gallery-caroousel{display:block;position:relative;overflow:hidden}.dr-gallery-caroousel.dr-gallery-caroousel_loop .dr-gallery-item{width:100%;min-height:240px}.dr-gallery-caroousel.dr-gallery-caroousel_loop .dr-gallery-item_active{transform:scale(1.2)}.dr-gallery-caroousel.dr-gallery-caroousel_fadein .dr-gallery-item{opacity:0}.dr-gallery-items{display:flex;position:relative;align-items:flex-end;will-change:transform}.dr-gallery-item{box-sizing:border-box;position:relative;flex-grow:1;padding:42px 24px;margin-top:-8px}.dr-gallery-item_fadein{animation:fadeIn .3s ease-in .25s forwards}.dr-gallery-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;box-shadow:0 4px 4px #00000040}.dr-gallery-btn button{width:40px!important;height:40px!important}.dr-gallery-btn button:hover{border-radius:50%}.dr-gallery-btn_left{left:0}.dr-gallery-btn_right{right:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
136
261
  }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { template: [{
137
262
  type: ContentChild,
138
263
  args: [TemplateRef]
264
+ }], modeType: [{
265
+ type: Input
266
+ }], isOutsideBtns: [{
267
+ type: Input
268
+ }], fadeIn: [{
269
+ type: Input
270
+ }], autoPlay: [{
271
+ type: Input
272
+ }], autoplayInterval: [{
273
+ type: Input
139
274
  }], items: [{
140
275
  type: Input
141
276
  }], itemsCount: [{
142
277
  type: Input
278
+ }], containerRef: [{
279
+ type: ViewChild,
280
+ args: ['carouselContainer']
281
+ }], itemElements: [{
282
+ type: ViewChildren,
283
+ args: ['carouselItem']
143
284
  }] }); })();
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFFTCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsU0FBUyxJQUFJLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0lDSG5ELHdCQUF3Rjs7Ozs7SUFONUYsOEJBS3lCO0lBQ3JCLDJGQUF3RjtJQUM1RixpQkFBTTs7Ozs7SUFGRixnQ0FBb0I7SUFGcEIsK0NBQStCO0lBQy9CLGlGQUEyRDtJQUU1QyxlQUE0QjtJQUE1QixrREFBNEIsZ0VBQUE7O0FEWXZELE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsSUFDSSxLQUFLLENBQUMsS0FBWTtRQUNsQixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNyQixJQUFJ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QUMsY0FDM0IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNO29FQUdwQixRQUFRO2tCQUFsQyxZQUFZO21CQUFDLFdBQVc7WUFPckIsS0FBSztrQkFEUixLQUFLO1lBUU8sVUFBVTtrQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSBhcyBfdGFrZSwgdGFrZVJpZ2h0IGFzIF90YWtlUmlnaHQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRHJJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9kci1pbnB1dHMvZHItaW5wdXRzLm1vZHVsZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWdhbGxlcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJJbnB1dHNNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyR2FsbGVyeUNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xuICAgIHByaXZhdGUgX2l0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIHByaXZhdGUgX2l0ZW1zQ291bnQgPSAzO1xuICAgIHJlYWRvbmx5IGRlZmF1bHRUcmFuc2l0aW9uID0gJzI1MG1zIGVhc2UtaW4tb3V0JztcbiAgICByZWFkb25seSBub1RyYW5zaXRpb24gPSAnMG1zJztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBhbnlbXSkge1xuICAgICAgICBpZiAodmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNhcm91c2VsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaXRlbXNDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWUgPiB0aGlzLml0ZW1zLmxlbmd0aCAtIDEgPyB0aGlzLml0ZW1zLmxlbmd0aCA6IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpdGVtcygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICBnZXQgaXRlbXNDb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNlbnRlckluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc0NvdW50ID4gMSAmJiB0aGlzLml0ZW1zQ291bnQgJSAyICE9PSAwID8gdGhpcy5hY3RpdmVJbmRleCArIE1hdGguZmxvb3IodGhpcy5pdGVtc0NvdW50IC8gMikgOiBudWxsO1xuICAgIH1cblxuICAgIGFjdGl2ZUluZGV4ID0gMDtcbiAgICBjYXJvdXNlbEl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIHRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKDAlKWA7XG4gICAgdHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuaXRlbXNDb3VudDtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQ2Fyb3VzZWwoKTtcbiAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVDYXJvdXNlbCgpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbEl0ZW1zID0gWy4uLl90YWtlUmlnaHQodGhpcy5pdGVtcywgdGhpcy5pdGVtc0NvdW50KSwgLi4udGhpcy5pdGVtcywgLi4uX3Rha2UodGhpcy5pdGVtcywgdGhpcy5pdGVtc0NvdW50KV07XG4gICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgfVxuXG4gICAgZ2V0U3R5bGUoKTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnQgPSBgY2FsYygkezEwMCAvIHRoaXMuaXRlbXNDb3VudH0lKWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtaW5XaWR0aDogcGVyY2VudCxcbiAgICAgICAgICAgIG1heFdpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgZmxleEJhc2lzOiBwZXJjZW50LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByZXYoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXgtLTtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0SW5kZXhBZnRlckRlbGF5KHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0KCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyB0aGlzLml0ZW1zQ291bnQgPiB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLml0ZW1zQ291bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEluZGV4QWZ0ZXJEZWxheShuZXdJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSh0cnVlKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zZm9ybShza2lwVHJhbnNpdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHstMTAwICogKHRoaXMuYWN0aXZlSW5kZXggLyB0aGlzLml0ZW1zQ291bnQpfSUpYDtcbiAgICAgICAgaWYgKHNraXBUcmFuc2l0aW9uKSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLm5vVHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRyLWJ1dHRvbiBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX2xlZnRcIiAoY2xpY2spPVwicHJldigpXCIgdGhlbWU9XCJpY29uXCIgW2ljb25dPVwiJ2RyLWljb24tYXJyb3ctbGVmdCdcIj4gPC9kci1idXR0b24+XG48ZGl2IGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtc1wiIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIiBbc3R5bGUudHJhbnNmb3JtXT1cInRyYW5zZm9ybVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXJvdXNlbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtXCJcbiAgICAgICAgICAgIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZHItZ2FsbGVyeS1pdGVtX2FjdGl2ZSc6IGNlbnRlckluZGV4ID09PSBpIH1cIlxuICAgICAgICAgICAgW3N0eWxlXT1cImdldFN0eWxlKClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZHItYnV0dG9uXG4gICAgY2xhc3M9XCJkci1nYWxsZXJ5LWJ0biBkci1nYWxsZXJ5LWJ0bl9yaWdodFwiXG4gICAgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgW2ljb25TaXplXT1cIicyNHB4J1wiXG4gICAgdGhlbWU9XCJpY29uXCJcbiAgICBbaWNvbl09XCInZHItaWNvbi1hcnJvdy1yaWdodCdcIj48L2RyLWJ1dHRvbj5cbiJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7SUNoQi9ELG9DQUtrQztJQUY5Qix3S0FBUyxlQUFBLGFBQU0sQ0FBQSxJQUFDO0lBR3BCLGlCQUFZOztJQURSLDJDQUE2Qjs7O0lBZ0JyQix3QkFBd0Y7Ozs7O0lBUjVGLGlDQU9zRDtJQUNsRCwyRkFBd0Y7SUFDNUYsaUJBQU07Ozs7O0lBTEYsK0NBQStCO0lBQy9CLHFFQUFrRCw0RUFBQTtJQUVsRCxxR0FBaUQ7SUFDbEMsZUFBNEI7SUFBNUIsa0RBQTRCLGlFQUFBOzs7O0lBS3ZELG9DQU1tQztJQUgvQiwwS0FBUyxlQUFBLGNBQU0sQ0FBQSxJQUFDO0lBSXBCLGlCQUFZOztJQUhSLGlDQUFtQiwrQkFBQTs7QURMdkIsTUFBTSxPQUFPLGtCQUFrQjtJQWUzQixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFD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QUFBO1lBR3BDLGVBQWtCO1lBQWxCLDJDQUFrQjtZQVkxQyxlQUFvQjtZQUFwQix5Q0FBb0I7NEJETlgsWUFBWSx3REFBRSxjQUFjOzt1RkFJN0Isa0JBQWtCO2NBUjlCLFNBQVM7MkJBQ0ksWUFBWSxXQUdiLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxjQUMzQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU07b0VBR3BCLFFBQVE7a0JBQWxDLFlBQVk7bUJBQUMsV0FBVztZQVFoQixRQUFRO2tCQUFoQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFHRixLQUFLO2tCQURSLEtBQUs7WUFTRixVQUFVO2tCQURiLEtBQUs7WUEyQjBCLFlBQVk7a0JBQTNDLFNBQVM7bUJBQUMsbUJBQW1CO1lBQ0EsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgYXMgX3Rha2UsIHRha2VSaWdodCBhcyBfdGFrZVJpZ2h0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1nYWxsZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckdhbGxlcnlDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG5cbiAgICBwcml2YXRlIF9pdGVtczogVFtdID0gW107XG4gICAgcHJpdmF0ZSBfaXRlbXNDb3VudCA9IDM7XG4gICAgcHJpdmF0ZSBhdXRvcGxheVRpbWVyOiBhbnk7XG4gICAgcmVhZG9ubHkgZGVmYXVsdFRyYW5zaXRpb24gPSAnMjUwbXMgZWFzZS1pbi1vdXQnO1xuICAgIHJlYWRvbmx5IG5vVHJhbnNpdGlvbiA9ICcwbXMnO1xuXG4gICAgQElucHV0KCkgbW9kZVR5cGU6ICdsb29wJyB8ICdkeW5hbWljJyA9ICdsb29wJztcbiAgICBASW5wdXQoKSBpc091dHNpZGVCdG5zID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmFkZUluID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXV0b1BsYXkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhdXRvcGxheUludGVydmFsID0gNTAwMDsgLy81IHNlY29uZHNcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBUW10pIHtcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDYXJvdXNlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXRlbXNDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWUgPiB0aGlzLml0ZW1zLmxlbmd0aCAtIDEgPyB0aGlzLml0ZW1zLmxlbmd0aCA6IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpdGVtcygpOiBUW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgZ2V0IGl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNlbnRlckluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc0NvdW50ID4gMSAmJiB0aGlzLml0ZW1zQ291bnQgJSAyICE9PSAwID8gdGhpcy5hY3RpdmVJbmRleCArIE1hdGguZmxvb3IodGhpcy5pdGVtc0NvdW50IC8gMikgOiBudWxsO1xuICAgIH1cblxuICAgIGFjdGl2ZUluZGV4ID0gMDtcbiAgICBjYXJvdXNlbEl0ZW1zOiBUW10gPSBbXTtcbiAgICB0cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgwJSknO1xuICAgIHRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuXG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWxDb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkcmVuKCdjYXJvdXNlbEl0ZW0nKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICAgIHByaXZhdGUgaXRlbU9mZnNldHM6IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBpdGVtV2lkdGhzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBXYWl0IGZvciBpbml0aWFsIHJlbmRlclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvcGxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhckF1dG9wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQ2Fyb3VzZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxJdGVtcyA9IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgtdGhpcy5pdGVtc0NvdW50KSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgwLCB0aGlzLml0ZW1zQ291bnQpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLml0ZW1zQ291bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsSXRlbXMgPSBbLi4udGhpcy5faXRlbXNdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlSXRlbU9mZnNldHMoKSB7XG4gICAgICAgIHRoaXMuaXRlbU9mZnNldHMgPSBbXTtcbiAgICAgICAgdGhpcy5pdGVtV2lkdGhzID0gW107XG5cbiAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5pdGVtRWxlbWVudHMudG9BcnJheSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIHRoaXMuaXRlbU9mZnNldHMucHVzaChvZmZzZXQpO1xuICAgICAgICAgICAgdGhpcy5pdGVtV2lkdGhzLnB1c2god2lkdGgpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U3R5bGUoKTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnQgPSBgY2FsYygkezEwMCAvIHRoaXMuaXRlbXNDb3VudH0lKWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtaW5XaWR0aDogcGVyY2VudCxcbiAgICAgICAgICAgIG1heFdpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgZmxleEJhc2lzOiBwZXJjZW50LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByZXYoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgtLTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gdGhpcy5pdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyB0aGlzLml0ZW1zQ291bnQgPiB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbmRleEFmdGVyRGVsYXkodGhpcy5pdGVtc0NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICsgMSA8IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdmlnYXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY2FuR29QcmV2KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuYWN0aXZlSW5kZXggPiAwKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuR29OZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5pdGVtT2Zmc2V0cy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCB0b3RhbENvbnRlbnRXaWR0aCA9IHRoaXMuaXRlbU9mZnNldHNbbGFzdEluZGV4XSArIHRoaXMuaXRlbVdpZHRoc1tsYXN0SW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50T2Zmc2V0ICsgY29udGFpbmVyV2lkdGggPCB0b3RhbENvbnRlbnRXaWR0aCAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEluZGV4QWZ0ZXJEZWxheShuZXdJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSh0cnVlKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zZm9ybShza2lwVHJhbnNpdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHstMTAwICogKHRoaXMuYWN0aXZlSW5kZXggLyB0aGlzLml0ZW1zQ291bnQpfSUpYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoLSR7b2Zmc2V0fXB4KWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNraXBUcmFuc2l0aW9uKSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLm5vVHJhbnNpdGlvbjtcbiAgICAgICAgZWxzZSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0QXV0b3BsYXkoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBdXRvcGxheSgpO1xuICAgICAgICB0aGlzLmF1dG9wbGF5VGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSwgdGhpcy5hdXRvcGxheUludGVydmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQXV0b3BsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMuYXV0b3BsYXlUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZHItYnV0dG9uXG4gICAgKm5nSWY9XCIhaXNPdXRzaWRlQnRuc1wiXG4gICAgY2xhc3M9XCJkci1nYWxsZXJ5LWJ0biBkci1nYWxsZXJ5LWJ0bl9sZWZ0XCJcbiAgICAoY2xpY2spPVwicHJldigpXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LWxlZnQnXCI+XG48L2RyLWJ1dHRvbj5cblxuPGRpdlxuICAgICNjYXJvdXNlbENvbnRhaW5lclxuICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWwgZHItZ2FsbGVyeS1jYXJvb3VzZWxfe3sgbW9kZVR5cGUgfX1cIlxuICAgIFtjbGFzcy5kci1nYWxsZXJ5LWNhcm9vdXNlbF9mYWRlaW5dPVwiZmFkZUluXCI+XG4gICAgPGRpdiBjbGFzcz1cImRyLWdhbGxlcnktaXRlbXNcIiBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCIgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2Nhcm91c2VsSXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2Fyb3VzZWxJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWdhbGxlcnktaXRlbVwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fYWN0aXZlXT1cImNlbnRlckluZGV4ID09PSBpXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fZmFkZWluXT1cImZhZGVJbiAmJiBjZW50ZXJJbmRleCA9PT0gaSArIDFcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZVR5cGUgPT09ICdsb29wJyA/IGdldFN0eWxlKCkgOiB7fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkci1idXR0b25cbiAgICAqbmdJZj1cIiFpc091dHNpZGVCdG5zXCJcbiAgICBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX3JpZ2h0XCJcbiAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICBbaWNvblNpemVdPVwiJzI0cHgnXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LXJpZ2h0J1wiPlxuPC9kci1idXR0b24+XG4iXX0=