@datarailsshared/datarailsshared 1.6.75 → 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.
- package/datarailsshared-datarailsshared-1.6.77.tgz +0 -0
- package/esm2022/lib/dr-gallery/dr-gallery.component.mjs +45 -10
- package/fesm2022/datarailsshared-datarailsshared.mjs +54 -19
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-gallery/dr-gallery.component.d.ts +10 -3
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.75.tgz +0 -0
|
Binary file
|
|
@@ -17,9 +17,8 @@ function DrGalleryComponent_dr_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
17
17
|
function DrGalleryComponent_div_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
18
18
|
i0.ɵɵelementContainer(0);
|
|
19
19
|
} }
|
|
20
|
-
const _c2 = function (
|
|
21
|
-
const _c3 = function () { return {}; };
|
|
22
|
-
const _c4 = function (a0) { return { $implicit: a0 }; };
|
|
20
|
+
const _c2 = function () { return {}; };
|
|
21
|
+
const _c3 = function (a0) { return { $implicit: a0 }; };
|
|
23
22
|
function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
23
|
i0.ɵɵelementStart(0, "div", 6, 7);
|
|
25
24
|
i0.ɵɵtemplate(2, DrGalleryComponent_div_4_ng_container_2_Template, 1, 0, "ng-container", 8);
|
|
@@ -29,9 +28,10 @@ function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
29
28
|
const i_r7 = ctx.index;
|
|
30
29
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
31
30
|
i0.ɵɵstyleProp("transition", ctx_r2.transition);
|
|
32
|
-
i0.ɵɵ
|
|
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
33
|
i0.ɵɵadvance(2);
|
|
34
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(
|
|
34
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(10, _c3, item_r6));
|
|
35
35
|
} }
|
|
36
36
|
function DrGalleryComponent_dr_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
37
37
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
@@ -72,6 +72,9 @@ export class DrGalleryComponent {
|
|
|
72
72
|
this.noTransition = '0ms';
|
|
73
73
|
this.modeType = 'loop';
|
|
74
74
|
this.isOutsideBtns = false;
|
|
75
|
+
this.fadeIn = false;
|
|
76
|
+
this.autoPlay = false;
|
|
77
|
+
this.autoplayInterval = 5000; //5 seconds
|
|
75
78
|
this.activeIndex = 0;
|
|
76
79
|
this.carouselItems = [];
|
|
77
80
|
this.transform = 'translateX(0%)';
|
|
@@ -84,8 +87,14 @@ export class DrGalleryComponent {
|
|
|
84
87
|
setTimeout(() => {
|
|
85
88
|
this.calculateItemOffsets();
|
|
86
89
|
this.updateTransform();
|
|
90
|
+
if (this.autoPlay) {
|
|
91
|
+
this.startAutoplay();
|
|
92
|
+
}
|
|
87
93
|
});
|
|
88
94
|
}
|
|
95
|
+
ngOnDestroy() {
|
|
96
|
+
this.clearAutoplay();
|
|
97
|
+
}
|
|
89
98
|
initializeCarousel() {
|
|
90
99
|
if (this.modeType === 'loop') {
|
|
91
100
|
this.carouselItems = [
|
|
@@ -154,11 +163,18 @@ export class DrGalleryComponent {
|
|
|
154
163
|
this.activeIndex++;
|
|
155
164
|
this.updateTransform();
|
|
156
165
|
}
|
|
166
|
+
else {
|
|
167
|
+
this.activeIndex = 0;
|
|
168
|
+
this.updateTransform();
|
|
169
|
+
}
|
|
157
170
|
}
|
|
158
171
|
}
|
|
159
172
|
navigate(index) {
|
|
160
173
|
this.activeIndex = index;
|
|
161
174
|
this.updateTransform();
|
|
175
|
+
if (this.autoPlay) {
|
|
176
|
+
this.startAutoplay();
|
|
177
|
+
}
|
|
162
178
|
}
|
|
163
179
|
get canGoPrev() {
|
|
164
180
|
if (this.modeType === 'loop')
|
|
@@ -195,6 +211,18 @@ export class DrGalleryComponent {
|
|
|
195
211
|
this.transition = this.defaultTransition;
|
|
196
212
|
this.cdr.markForCheck();
|
|
197
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
|
+
}
|
|
198
226
|
/** @nocollapse */ static { this.ɵfac = function DrGalleryComponent_Factory(t) { return new (t || DrGalleryComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
199
227
|
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrGalleryComponent, selectors: [["dr-gallery"]], contentQueries: function DrGalleryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
200
228
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
|
@@ -208,27 +236,28 @@ export class DrGalleryComponent {
|
|
|
208
236
|
let _t;
|
|
209
237
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerRef = _t.first);
|
|
210
238
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemElements = _t);
|
|
211
|
-
} }, inputs: { modeType: "modeType", isOutsideBtns: "isOutsideBtns", items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars:
|
|
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) {
|
|
212
240
|
i0.ɵɵtemplate(0, DrGalleryComponent_dr_button_0_Template, 1, 1, "dr-button", 0);
|
|
213
241
|
i0.ɵɵelementStart(1, "div", null, 1)(3, "div", 2);
|
|
214
|
-
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3,
|
|
242
|
+
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3, 12, "div", 3);
|
|
215
243
|
i0.ɵɵelementEnd()();
|
|
216
244
|
i0.ɵɵtemplate(5, DrGalleryComponent_dr_button_5_Template, 1, 2, "dr-button", 4);
|
|
217
245
|
} if (rf & 2) {
|
|
218
246
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
219
247
|
i0.ɵɵadvance(1);
|
|
220
248
|
i0.ɵɵclassMapInterpolate1("dr-gallery-caroousel dr-gallery-caroousel_", ctx.modeType, "");
|
|
249
|
+
i0.ɵɵclassProp("dr-gallery-caroousel_fadein", ctx.fadeIn);
|
|
221
250
|
i0.ɵɵadvance(2);
|
|
222
251
|
i0.ɵɵstyleProp("transition", ctx.transition)("transform", ctx.transform);
|
|
223
252
|
i0.ɵɵadvance(1);
|
|
224
253
|
i0.ɵɵproperty("ngForOf", ctx.carouselItems);
|
|
225
254
|
i0.ɵɵadvance(1);
|
|
226
255
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
227
|
-
} }, dependencies: [CommonModule, i1.
|
|
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 }); }
|
|
228
257
|
}
|
|
229
258
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrGalleryComponent, [{
|
|
230
259
|
type: Component,
|
|
231
|
-
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
|
|
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"] }]
|
|
232
261
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { template: [{
|
|
233
262
|
type: ContentChild,
|
|
234
263
|
args: [TemplateRef]
|
|
@@ -236,6 +265,12 @@ export class DrGalleryComponent {
|
|
|
236
265
|
type: Input
|
|
237
266
|
}], isOutsideBtns: [{
|
|
238
267
|
type: Input
|
|
268
|
+
}], fadeIn: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], autoPlay: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], autoplayInterval: [{
|
|
273
|
+
type: Input
|
|
239
274
|
}], items: [{
|
|
240
275
|
type: Input
|
|
241
276
|
}], itemsCount: [{
|
|
@@ -247,4 +282,4 @@ export class DrGalleryComponent {
|
|
|
247
282
|
type: ViewChildren,
|
|
248
283
|
args: ['carouselItem']
|
|
249
284
|
}] }); })();
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7SUNkL0Qsb0NBS2tDO0lBRjlCLHdLQUFTLGVBQUEsYUFBTSxDQUFBLElBQUM7SUFHcEIsaUJBQVk7O0lBRFIsMkNBQTZCOzs7SUFZckIsd0JBQXdGOzs7Ozs7SUFQNUYsaUNBTXNEO0lBQ2xELDJGQUF3RjtJQUM1RixpQkFBTTs7Ozs7SUFKRiwrQ0FBK0I7SUFDL0IsaUZBQTJELHdGQUFBO0lBRTVDLGVBQTRCO0lBQTVCLGtEQUE0QixnRUFBQTs7OztJQUt2RCxvQ0FNbUM7SUFIL0IsMEtBQVMsZUFBQSxjQUFNLENBQUEsSUFBQztJQUlwQixpQkFBWTs7SUFIUixpQ0FBbUIsK0JBQUE7O0FESHZCLE1BQU0sT0FBTyxrQkFBa0I7SUFXM0IsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNoQixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENB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QUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7c0dBaExRLGtCQUFrQjttR0FBbEIsa0JBQWtCO3dDQUNiLFdBQVc7Ozs7Ozs7Ozs7OztZQ3hCN0IsK0VBTVk7WUFFWixvQ0FBeUYsYUFBQTtZQUVqRixvRUFRTTtZQUNWLGlCQUFNLEVBQUE7WUFHViwrRUFPWTs7WUE1QlAseUNBQW9CO1lBT0QsZUFBZ0U7WUFBaEUseUZBQWdFO1lBQ3RELGVBQStCO1lBQS9CLDRDQUErQiw0QkFBQTtZQUdwQyxlQUFrQjtZQUFsQiwyQ0FBa0I7WUFXMUMsZUFBb0I7WUFBcEIseUNBQW9COzRCREpYLFlBQVksb0VBQUUsY0FBYzs7dUZBSTdCLGtCQUFrQjtjQVI5QixTQUFTOzJCQUNJLFlBQVksV0FHYixDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsY0FDM0IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNO29FQUdwQixRQUFRO2tCQUFsQyxZQUFZO21CQUFDLFdBQVc7WUFPaEIsUUFBUTtrQkFBaEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFHRixLQUFLO2tCQURSLEtBQUs7WUFTRixVQUFVO2tCQURiLEtBQUs7WUEyQjBCLFlBQVk7a0JBQTNDLFNBQVM7bUJBQUMsbUJBQW1CO1lBQ0EsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgYXMgX3Rha2UsIHRha2VSaWdodCBhcyBfdGFrZVJpZ2h0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1nYWxsZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckdhbGxlcnlDb21wb25lbnQ8VCA9IGFueT4ge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG5cbiAgICBwcml2YXRlIF9pdGVtczogVFtdID0gW107XG4gICAgcHJpdmF0ZSBfaXRlbXNDb3VudCA9IDM7XG4gICAgcmVhZG9ubHkgZGVmYXVsdFRyYW5zaXRpb24gPSAnMjUwbXMgZWFzZS1pbi1vdXQnO1xuICAgIHJlYWRvbmx5IG5vVHJhbnNpdGlvbiA9ICcwbXMnO1xuXG4gICAgQElucHV0KCkgbW9kZVR5cGU6ICdsb29wJyB8ICdkeW5hbWljJyA9ICdsb29wJztcbiAgICBASW5wdXQoKSBpc091dHNpZGVCdG5zID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpdGVtcyh2YWx1ZTogVFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplQ2Fyb3VzZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXNDb3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXRlbXNDb3VudCA9IHZhbHVlID4gdGhpcy5pdGVtcy5sZW5ndGggLSAxID8gdGhpcy5pdGVtcy5sZW5ndGggOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXRlbXMoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIGdldCBpdGVtc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0NvdW50O1xuICAgIH1cblxuICAgIGdldCBjZW50ZXJJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNDb3VudCA+IDEgJiYgdGhpcy5pdGVtc0NvdW50ICUgMiAhPT0gMCA/IHRoaXMuYWN0aXZlSW5kZXggKyBNYXRoLmZsb29yKHRoaXMuaXRlbXNDb3VudCAvIDIpIDogbnVsbDtcbiAgICB9XG5cbiAgICBhY3RpdmVJbmRleCA9IDA7XG4gICAgY2Fyb3VzZWxJdGVtczogVFtdID0gW107XG4gICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoMCUpJztcbiAgICB0cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsQ29udGFpbmVyJykgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZHJlbignY2Fyb3VzZWxJdGVtJykgaXRlbUVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcbiAgICBwcml2YXRlIGl0ZW1PZmZzZXRzOiBudW1iZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgaXRlbVdpZHRoczogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gV2FpdCBmb3IgaW5pdGlhbCByZW5kZXJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUl0ZW1PZmZzZXRzKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVDYXJvdXNlbCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbEl0ZW1zID0gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLnNsaWNlKC10aGlzLml0ZW1zQ291bnQpLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2l0ZW1zLnNsaWNlKDAsIHRoaXMuaXRlbXNDb3VudCksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuaXRlbXNDb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxJdGVtcyA9IFsuLi50aGlzLl9pdGVtc107XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVJdGVtT2Zmc2V0cygpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVJdGVtT2Zmc2V0cygpIHtcbiAgICAgICAgdGhpcy5pdGVtT2Zmc2V0cyA9IFtdO1xuICAgICAgICB0aGlzLml0ZW1XaWR0aHMgPSBbXTtcblxuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLml0ZW1FbGVtZW50cy50b0FycmF5KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgdGhpcy5pdGVtT2Zmc2V0cy5wdXNoKG9mZnNldCk7XG4gICAgICAgICAgICB0aGlzLml0ZW1XaWR0aHMucHVzaCh3aWR0aCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTdHlsZSgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IGBjYWxjKCR7MTAwIC8gdGhpcy5pdGVtc0NvdW50fSUpYDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pbldpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgbWF4V2lkdGg6IHBlcmNlbnQsXG4gICAgICAgICAgICBmbGV4QmFzaXM6IHBlcmNlbnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJldigpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4IDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SW5kZXhBZnRlckRlbGF5KHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHQoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCArIHRoaXMuaXRlbXNDb3VudCA+IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLml0ZW1zQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyAxIDwgdGhpcy5jYXJvdXNlbEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmF2aWdhdGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkdvUHJldigpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmFjdGl2ZUluZGV4ID4gMCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkdvTmV4dCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZVR5cGUgPT09ICdsb29wJykgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldFdpZHRoIHx8IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLml0ZW1PZmZzZXRzW3RoaXMuYWN0aXZlSW5kZXhdIHx8IDA7XG4gICAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHRoaXMuaXRlbU9mZnNldHMubGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgdG90YWxDb250ZW50V2lkdGggPSB0aGlzLml0ZW1PZmZzZXRzW2xhc3RJbmRleF0gKyB0aGlzLml0ZW1XaWR0aHNbbGFzdEluZGV4XTtcblxuICAgICAgICByZXR1cm4gY3VycmVudE9mZnNldCArIGNvbnRhaW5lcldpZHRoIDwgdG90YWxDb250ZW50V2lkdGggLSAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRJbmRleEFmdGVyRGVsYXkobmV3SW5kZXg6IG51bWJlcikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMubm9UcmFuc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0odHJ1ZSk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFuc2Zvcm0oc2tpcFRyYW5zaXRpb24gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7LTEwMCAqICh0aGlzLmFjdGl2ZUluZGV4IC8gdGhpcy5pdGVtc0NvdW50KX0lKWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLml0ZW1PZmZzZXRzW3RoaXMuYWN0aXZlSW5kZXhdIHx8IDA7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKC0ke29mZnNldH1weClgO1xuICAgICAgICB9XG4gICAgICAgIGlmIChza2lwVHJhbnNpdGlvbikgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgIGVsc2UgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5kZWZhdWx0VHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRyLWJ1dHRvblxuICAgICpuZ0lmPVwiIWlzT3V0c2lkZUJ0bnNcIlxuICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1idG4gZHItZ2FsbGVyeS1idG5fbGVmdFwiXG4gICAgKGNsaWNrKT1cInByZXYoKVwiXG4gICAgdGhlbWU9XCJpY29uXCJcbiAgICBbaWNvbl09XCInZHItaWNvbi1hcnJvdy1sZWZ0J1wiPlxuPC9kci1idXR0b24+XG5cbjxkaXYgI2Nhcm91c2VsQ29udGFpbmVyIGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWwgZHItZ2FsbGVyeS1jYXJvb3VzZWxfe3sgbW9kZVR5cGUgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtc1wiIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIiBbc3R5bGUudHJhbnNmb3JtXT1cInRyYW5zZm9ybVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjY2Fyb3VzZWxJdGVtXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXJvdXNlbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1pdGVtXCJcbiAgICAgICAgICAgIFtzdHlsZS50cmFuc2l0aW9uXT1cInRyYW5zaXRpb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZHItZ2FsbGVyeS1pdGVtX2FjdGl2ZSc6IGNlbnRlckluZGV4ID09PSBpIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZVR5cGUgPT09ICdsb29wJyA/IGdldFN0eWxlKCkgOiB7fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkci1idXR0b25cbiAgICAqbmdJZj1cIiFpc091dHNpZGVCdG5zXCJcbiAgICBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX3JpZ2h0XCJcbiAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICBbaWNvblNpemVdPVwiJzI0cHgnXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LXJpZ2h0J1wiPlxuPC9kci1idXR0b24+XG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1nYWxsZXJ5L2RyLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ2FsbGVyeS9kci1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7SUNoQi9ELG9DQUtrQztJQUY5Qix3S0FBUyxlQUFBLGFBQU0sQ0FBQSxJQUFDO0lBR3BCLGlCQUFZOztJQURSLDJDQUE2Qjs7O0lBZ0JyQix3QkFBd0Y7Ozs7O0lBUjVGLGlDQU9zRDtJQUNsRCwyRkFBd0Y7SUFDNUYsaUJBQU07Ozs7O0lBTEYsK0NBQStCO0lBQy9CLHFFQUFrRCw0RUFBQTtJQUVsRCxxR0FBaUQ7SUFDbEMsZUFBNEI7SUFBNUIsa0RBQTRCLGlFQUFBOzs7O0lBS3ZELG9DQU1tQztJQUgvQiwwS0FBUyxlQUFBLGNBQU0sQ0FBQSxJQUFDO0lBSXBCLGlCQUFZOztJQUhSLGlDQUFtQiwrQkFBQTs7QURMdkIsTUFBTSxPQUFPLGtCQUFrQjtJQWUzQixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFD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QUFBO1lBR3BDLGVBQWtCO1lBQWxCLDJDQUFrQjtZQVkxQyxlQUFvQjtZQUFwQix5Q0FBb0I7NEJETlgsWUFBWSx3REFBRSxjQUFjOzt1RkFJN0Isa0JBQWtCO2NBUjlCLFNBQVM7MkJBQ0ksWUFBWSxXQUdiLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxjQUMzQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU07b0VBR3BCLFFBQVE7a0JBQWxDLFlBQVk7bUJBQUMsV0FBVztZQVFoQixRQUFRO2tCQUFoQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFHRixLQUFLO2tCQURSLEtBQUs7WUFTRixVQUFVO2tCQURiLEtBQUs7WUEyQjBCLFlBQVk7a0JBQTNDLFNBQVM7bUJBQUMsbUJBQW1CO1lBQ0EsWUFBWTtrQkFBekMsWUFBWTttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgYXMgX3Rha2UsIHRha2VSaWdodCBhcyBfdGFrZVJpZ2h0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1nYWxsZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZ2FsbGVyeS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckdhbGxlcnlDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG5cbiAgICBwcml2YXRlIF9pdGVtczogVFtdID0gW107XG4gICAgcHJpdmF0ZSBfaXRlbXNDb3VudCA9IDM7XG4gICAgcHJpdmF0ZSBhdXRvcGxheVRpbWVyOiBhbnk7XG4gICAgcmVhZG9ubHkgZGVmYXVsdFRyYW5zaXRpb24gPSAnMjUwbXMgZWFzZS1pbi1vdXQnO1xuICAgIHJlYWRvbmx5IG5vVHJhbnNpdGlvbiA9ICcwbXMnO1xuXG4gICAgQElucHV0KCkgbW9kZVR5cGU6ICdsb29wJyB8ICdkeW5hbWljJyA9ICdsb29wJztcbiAgICBASW5wdXQoKSBpc091dHNpZGVCdG5zID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmFkZUluID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXV0b1BsYXkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhdXRvcGxheUludGVydmFsID0gNTAwMDsgLy81IHNlY29uZHNcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBUW10pIHtcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDYXJvdXNlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgaXRlbXNDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtc0NvdW50ID0gdmFsdWUgPiB0aGlzLml0ZW1zLmxlbmd0aCAtIDEgPyB0aGlzLml0ZW1zLmxlbmd0aCA6IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpdGVtcygpOiBUW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgZ2V0IGl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNlbnRlckluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc0NvdW50ID4gMSAmJiB0aGlzLml0ZW1zQ291bnQgJSAyICE9PSAwID8gdGhpcy5hY3RpdmVJbmRleCArIE1hdGguZmxvb3IodGhpcy5pdGVtc0NvdW50IC8gMikgOiBudWxsO1xuICAgIH1cblxuICAgIGFjdGl2ZUluZGV4ID0gMDtcbiAgICBjYXJvdXNlbEl0ZW1zOiBUW10gPSBbXTtcbiAgICB0cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgwJSknO1xuICAgIHRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuXG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWxDb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkcmVuKCdjYXJvdXNlbEl0ZW0nKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICAgIHByaXZhdGUgaXRlbU9mZnNldHM6IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBpdGVtV2lkdGhzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBXYWl0IGZvciBpbml0aWFsIHJlbmRlclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvcGxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhckF1dG9wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQ2Fyb3VzZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxJdGVtcyA9IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgtdGhpcy5pdGVtc0NvdW50KSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9pdGVtcy5zbGljZSgwLCB0aGlzLml0ZW1zQ291bnQpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLml0ZW1zQ291bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsSXRlbXMgPSBbLi4udGhpcy5faXRlbXNdO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSXRlbU9mZnNldHMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlSXRlbU9mZnNldHMoKSB7XG4gICAgICAgIHRoaXMuaXRlbU9mZnNldHMgPSBbXTtcbiAgICAgICAgdGhpcy5pdGVtV2lkdGhzID0gW107XG5cbiAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5pdGVtRWxlbWVudHMudG9BcnJheSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIHRoaXMuaXRlbU9mZnNldHMucHVzaChvZmZzZXQpO1xuICAgICAgICAgICAgdGhpcy5pdGVtV2lkdGhzLnB1c2god2lkdGgpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U3R5bGUoKTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnQgPSBgY2FsYygkezEwMCAvIHRoaXMuaXRlbXNDb3VudH0lKWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtaW5XaWR0aDogcGVyY2VudCxcbiAgICAgICAgICAgIG1heFdpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgZmxleEJhc2lzOiBwZXJjZW50LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByZXYoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXgtLTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHRoaXMuZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEluZGV4QWZ0ZXJEZWxheSh0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gdGhpcy5pdGVtcy5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggKyB0aGlzLml0ZW1zQ291bnQgPiB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbmRleEFmdGVyRGVsYXkodGhpcy5pdGVtc0NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICsgMSA8IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdmlnYXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSgpO1xuICAgICAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY2FuR29QcmV2KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuYWN0aXZlSW5kZXggPiAwKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuR29OZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ2xvb3AnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5pdGVtT2Zmc2V0cy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCB0b3RhbENvbnRlbnRXaWR0aCA9IHRoaXMuaXRlbU9mZnNldHNbbGFzdEluZGV4XSArIHRoaXMuaXRlbVdpZHRoc1tsYXN0SW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50T2Zmc2V0ICsgY29udGFpbmVyV2lkdGggPCB0b3RhbENvbnRlbnRXaWR0aCAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEluZGV4QWZ0ZXJEZWxheShuZXdJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uID0gdGhpcy5ub1RyYW5zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zZm9ybSh0cnVlKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zZm9ybShza2lwVHJhbnNpdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVUeXBlID09PSAnbG9vcCcpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHstMTAwICogKHRoaXMuYWN0aXZlSW5kZXggLyB0aGlzLml0ZW1zQ291bnQpfSUpYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaXRlbU9mZnNldHNbdGhpcy5hY3RpdmVJbmRleF0gfHwgMDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoLSR7b2Zmc2V0fXB4KWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNraXBUcmFuc2l0aW9uKSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLm5vVHJhbnNpdGlvbjtcbiAgICAgICAgZWxzZSB0aGlzLnRyYW5zaXRpb24gPSB0aGlzLmRlZmF1bHRUcmFuc2l0aW9uO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0QXV0b3BsYXkoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBdXRvcGxheSgpO1xuICAgICAgICB0aGlzLmF1dG9wbGF5VGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSwgdGhpcy5hdXRvcGxheUludGVydmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQXV0b3BsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMuYXV0b3BsYXlUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZHItYnV0dG9uXG4gICAgKm5nSWY9XCIhaXNPdXRzaWRlQnRuc1wiXG4gICAgY2xhc3M9XCJkci1nYWxsZXJ5LWJ0biBkci1nYWxsZXJ5LWJ0bl9sZWZ0XCJcbiAgICAoY2xpY2spPVwicHJldigpXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LWxlZnQnXCI+XG48L2RyLWJ1dHRvbj5cblxuPGRpdlxuICAgICNjYXJvdXNlbENvbnRhaW5lclxuICAgIGNsYXNzPVwiZHItZ2FsbGVyeS1jYXJvb3VzZWwgZHItZ2FsbGVyeS1jYXJvb3VzZWxfe3sgbW9kZVR5cGUgfX1cIlxuICAgIFtjbGFzcy5kci1nYWxsZXJ5LWNhcm9vdXNlbF9mYWRlaW5dPVwiZmFkZUluXCI+XG4gICAgPGRpdiBjbGFzcz1cImRyLWdhbGxlcnktaXRlbXNcIiBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCIgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2Nhcm91c2VsSXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2Fyb3VzZWxJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWdhbGxlcnktaXRlbVwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNpdGlvbl09XCJ0cmFuc2l0aW9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fYWN0aXZlXT1cImNlbnRlckluZGV4ID09PSBpXCJcbiAgICAgICAgICAgIFtjbGFzcy5kci1nYWxsZXJ5LWl0ZW1fZmFkZWluXT1cImZhZGVJbiAmJiBjZW50ZXJJbmRleCA9PT0gaSArIDFcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZVR5cGUgPT09ICdsb29wJyA/IGdldFN0eWxlKCkgOiB7fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkci1idXR0b25cbiAgICAqbmdJZj1cIiFpc091dHNpZGVCdG5zXCJcbiAgICBjbGFzcz1cImRyLWdhbGxlcnktYnRuIGRyLWdhbGxlcnktYnRuX3JpZ2h0XCJcbiAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICBbaWNvblNpemVdPVwiJzI0cHgnXCJcbiAgICB0aGVtZT1cImljb25cIlxuICAgIFtpY29uXT1cIidkci1pY29uLWFycm93LXJpZ2h0J1wiPlxuPC9kci1idXR0b24+XG4iXX0=
|
|
@@ -1103,7 +1103,7 @@ function DrInputComponent_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
1103
1103
|
i0.ɵɵtextInterpolate1(" ", ctx_r5._buttonOptions.text, "\n");
|
|
1104
1104
|
} }
|
|
1105
1105
|
const _c3$7 = [[["", "prefixIcon", ""]], [["", "suffixIcon", ""]]];
|
|
1106
|
-
const _c4$
|
|
1106
|
+
const _c4$4 = ["[prefixIcon]", "[suffixIcon]"];
|
|
1107
1107
|
class DrInputComponent {
|
|
1108
1108
|
set disabled(value) {
|
|
1109
1109
|
this.setDisabledState(value);
|
|
@@ -1286,7 +1286,7 @@ class DrInputComponent {
|
|
|
1286
1286
|
useExisting: forwardRef((() => DrInputComponent)),
|
|
1287
1287
|
multi: true,
|
|
1288
1288
|
},
|
|
1289
|
-
])], ngContentSelectors: _c4$
|
|
1289
|
+
])], ngContentSelectors: _c4$4, decls: 8, vars: 5, consts: [[4, "ngIf", "ngIfElse"], ["maskedInput", ""], ["class", "clear-icon", 3, "click", 4, "ngIf"], ["class", "search-icon", 3, "click", 4, "ngIf"], [3, "click", 4, "ngIf"], [3, "ngModel", "disabled", "readonly", "type", "placeholder", "name", "min", "max", "minlength", "maxlength", "step", "ngModelChange", "ngModelDebounceChange", "blur", "focus"], ["inputRef", ""], [3, "ngModel", "disabled", "readonly", "type", "placeholder", "name", "min", "max", "minlength", "maxlength", "mask", "suffix", "prefix", "step", "ngModelChange", "ngModelDebounceChange", "blur", "focus"], [1, "clear-icon", 3, "click"], [1, "search-icon", 3, "click"], [3, "click"]], template: function DrInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1290
1290
|
i0.ɵɵprojectionDef(_c3$7);
|
|
1291
1291
|
i0.ɵɵprojection(0);
|
|
1292
1292
|
i0.ɵɵtemplate(1, DrInputComponent_ng_container_1_Template, 3, 11, "ng-container", 0);
|
|
@@ -1387,7 +1387,7 @@ const _c0$F = ["labelTemplate"];
|
|
|
1387
1387
|
const _c1$i = ["multiLabelTemplate"];
|
|
1388
1388
|
const _c2$8 = ["optionTemplate"];
|
|
1389
1389
|
const _c3$6 = ["optionHeaderTemplate"];
|
|
1390
|
-
const _c4$
|
|
1390
|
+
const _c4$3 = ["optionFooterTemplate"];
|
|
1391
1391
|
const _c5 = function (a0) { return { item: a0 }; };
|
|
1392
1392
|
function DrSelectComponent_2_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
1393
1393
|
i0.ɵɵelementContainer(0, 6);
|
|
@@ -1624,7 +1624,7 @@ class DrSelectComponent {
|
|
|
1624
1624
|
i0.ɵɵcontentQuery(dirIndex, _c1$i, 5);
|
|
1625
1625
|
i0.ɵɵcontentQuery(dirIndex, _c2$8, 5);
|
|
1626
1626
|
i0.ɵɵcontentQuery(dirIndex, _c3$6, 5);
|
|
1627
|
-
i0.ɵɵcontentQuery(dirIndex, _c4$
|
|
1627
|
+
i0.ɵɵcontentQuery(dirIndex, _c4$3, 5);
|
|
1628
1628
|
} if (rf & 2) {
|
|
1629
1629
|
let _t;
|
|
1630
1630
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.labelTemplate = _t.first);
|
|
@@ -6875,7 +6875,7 @@ function DrChatComponent_dr_chat_suggestions_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
6875
6875
|
i0.ɵɵproperty("values", ctx_r3.suggestions)("fullScreen", ctx_r3.fullScreen)("waitForReply", ctx_r3.waitForReply)("buttonMode", !!(ctx_r3.messages == null ? null : ctx_r3.messages.length));
|
|
6876
6876
|
} }
|
|
6877
6877
|
const _c3$4 = [[["dr-chat-alert"]], [["dr-chat-form"]], [["dr-ai-search-input"]], [["dr-chat-message"]]];
|
|
6878
|
-
const _c4$
|
|
6878
|
+
const _c4$2 = ["dr-chat-alert", "dr-chat-form", "dr-ai-search-input", "dr-chat-message"];
|
|
6879
6879
|
class DrChatComponent {
|
|
6880
6880
|
set contentUpdateSubject(value) {
|
|
6881
6881
|
if (value) {
|
|
@@ -6971,7 +6971,7 @@ class DrChatComponent {
|
|
|
6971
6971
|
let _t;
|
|
6972
6972
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messagesContainer = _t.first);
|
|
6973
6973
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._chatSuggestions = _t.first);
|
|
6974
|
-
} }, inputs: { fullScreen: "fullScreen", noMessagesPlaceholder: "noMessagesPlaceholder", contentUpdateSubject: "contentUpdateSubject", scrollBottom: "scrollBottom", suggestions: "suggestions", reopen: "reopen", waitForReply: "waitForReply", scrollDelay: "scrollDelay" }, outputs: { suggestionSelect: "suggestionSelect" }, features: [i0.ɵɵProvidersFeature([DrChatCustomMessageService])], ngContentSelectors: _c4$
|
|
6974
|
+
} }, inputs: { fullScreen: "fullScreen", noMessagesPlaceholder: "noMessagesPlaceholder", contentUpdateSubject: "contentUpdateSubject", scrollBottom: "scrollBottom", suggestions: "suggestions", reopen: "reopen", waitForReply: "waitForReply", scrollDelay: "scrollDelay" }, outputs: { suggestionSelect: "suggestionSelect" }, features: [i0.ɵɵProvidersFeature([DrChatCustomMessageService])], ngContentSelectors: _c4$2, decls: 11, vars: 6, consts: [[1, "chat"], [1, "chat__sticky-top"], [3, "ngTemplateOutlet", 4, "ngIf"], [1, "chat__alert"], ["class", "chat__empty-state", 4, "ngIf"], ["class", "chat__messages", 4, "ngIf"], ["class", "chat__suggestions", 3, "values", "fullScreen", "waitForReply", "chat__suggestions--full-height", "buttonMode", "suggestionSelect", 4, "ngIf"], [1, "form"], [3, "ngTemplateOutlet"], [1, "chat__empty-state"], [1, "chat__empty-state__text"], [1, "chat__messages"], [1, "chat__messages__container"], ["messagesContainer", ""], [1, "chat__suggestions", 3, "values", "fullScreen", "waitForReply", "buttonMode", "suggestionSelect"]], template: function DrChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
6975
6975
|
i0.ɵɵprojectionDef(_c3$4);
|
|
6976
6976
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
6977
6977
|
i0.ɵɵtemplate(2, DrChatComponent_ng_container_2_Template, 1, 1, "ng-container", 2);
|
|
@@ -7067,7 +7067,7 @@ function DrChatFormDropdownComponent_dr_dot_flashing_15_Template(rf, ctx) { if (
|
|
|
7067
7067
|
} }
|
|
7068
7068
|
const _c2$4 = function (a0) { return { "message-row_loading": a0 }; };
|
|
7069
7069
|
const _c3$3 = function (a0, a1) { return { "message-row__input--focused": a0, "message-row__input--filled": a1 }; };
|
|
7070
|
-
const _c4$
|
|
7070
|
+
const _c4$1 = ["*"];
|
|
7071
7071
|
class DrChatFormDropdownComponent {
|
|
7072
7072
|
constructor(cdr, domSanitizer) {
|
|
7073
7073
|
this.cdr = cdr;
|
|
@@ -7235,7 +7235,7 @@ class DrChatFormDropdownComponent {
|
|
|
7235
7235
|
i0.ɵɵlistener("drop", function DrChatFormDropdownComponent_drop_HostBindingHandler($event) { return ctx.onDrop($event); })("dragover", function DrChatFormDropdownComponent_dragover_HostBindingHandler($event) { return ctx.onDragOver($event); })("dragleave", function DrChatFormDropdownComponent_dragleave_HostBindingHandler($event) { return ctx.onDragLeave($event); });
|
|
7236
7236
|
} if (rf & 2) {
|
|
7237
7237
|
i0.ɵɵclassProp("file-over", ctx.fileOver);
|
|
7238
|
-
} }, inputs: { isUploadingFiles: "isUploadingFiles", message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDotFlashing: "showDotFlashing" }, outputs: { send: "send", uploadFiles: "uploadFiles", abort: "abort", inputChange: "inputChange" }, ngContentSelectors: _c4$
|
|
7238
|
+
} }, inputs: { isUploadingFiles: "isUploadingFiles", message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDotFlashing: "showDotFlashing" }, outputs: { send: "send", uploadFiles: "uploadFiles", abort: "abort", inputChange: "inputChange" }, ngContentSelectors: _c4$1, decls: 16, vars: 20, consts: [[1, "message-row", 3, "ngClass"], [1, "message-row__input", 3, "ngClass"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent", 4, "ngIf"], [1, "message-row__input-textarea-wrap"], ["type", "text", 3, "ngModel", "rows", "placeholder", "focus", "blur", "mouseenter", "mouseleave", "ngModelChange", "keydown.enter"], ["textAreaElement", ""], [1, "message-row__btns"], ["type", "file", "hidden", "", "multiple", "", 3, "change"], ["fileInput", ""], ["class", "dr-icon-send-arrow-up send-button", 3, "click", 4, "ngIf"], ["class", "dr-icon-stop abort-button", 3, "click", 4, "ngIf"], ["class", "wait-reply-dot-flashing", 4, "ngIf"], [3, "files", "isRemovable", "maxLengthText", "removeFileEvent"], [1, "dr-icon-send-arrow-up", "send-button", 3, "click"], [1, "dr-icon-stop", "abort-button", 3, "click"], [1, "wait-reply-dot-flashing"]], template: function DrChatFormDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
7239
7239
|
i0.ɵɵprojectionDef();
|
|
7240
7240
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
7241
7241
|
i0.ɵɵpipe(2, "async");
|
|
@@ -9459,7 +9459,7 @@ function DrDropdownComponent_dr_dropdown_item_4_Template(rf, ctx) { if (rf & 1)
|
|
|
9459
9459
|
i0.ɵɵproperty("ngIf", act_r2.templateRef);
|
|
9460
9460
|
} }
|
|
9461
9461
|
const _c3$2 = [[["dr-dropdown-item"]]];
|
|
9462
|
-
const _c4
|
|
9462
|
+
const _c4 = ["dr-dropdown-item"];
|
|
9463
9463
|
class DrDropdownComponent {
|
|
9464
9464
|
set options(data) {
|
|
9465
9465
|
if (data) {
|
|
@@ -9579,7 +9579,7 @@ class DrDropdownComponent {
|
|
|
9579
9579
|
} if (rf & 2) {
|
|
9580
9580
|
let _t;
|
|
9581
9581
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuContainer = _t.first);
|
|
9582
|
-
} }, inputs: { options: "options" }, outputs: { onAction: "action" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4
|
|
9582
|
+
} }, inputs: { options: "options" }, outputs: { onAction: "action" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4, decls: 6, vars: 5, consts: [[1, "dr-dropdown"], ["menuContainer", ""], ["tabindex", "-1", "role", "listbox", 1, "dr-dropdown__container", 3, "mouseenter", "mouseleave"], ["drDropdownChild", "", "role", "option", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown", 4, "ngFor", "ngForOf"], ["drDropdownChild", "", "role", "option", "tabindex", "0", 3, "drTooltip", "drTooltipPosition", "drTooltipOptions", "drTooltipClass", "drDropdown", "drDropdownClass", "drDropdownInHover", "drDropdownPosition", "disabled", "selected", "divider", "mousedown"], ["dropdownItemContent", "", 4, "ngIf"], ["dropdownItemActions", "", 4, "ngIf"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["dropdownItemContent", ""], ["class", "dr-dropdown__icon", 3, "class", 4, "ngIf"], [1, "dr-dropdown__text"], [1, "dr-dropdown__icon"], ["dropdownItemActions", ""], [3, "class", "showOnHover", "mousedown", 4, "ngFor", "ngForOf"], ["class", "dr-icon-arrow-right", 4, "ngIf"], [3, "mousedown"], [1, "dr-icon-arrow-right"], ["dropdownItemContent", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
9583
9583
|
i0.ɵɵprojectionDef(_c3$2);
|
|
9584
9584
|
i0.ɵɵelementStart(0, "div", 0, 1)(2, "div", 2);
|
|
9585
9585
|
i0.ɵɵlistener("mouseenter", function DrDropdownComponent_Template_div_mouseenter_2_listener() { return ctx.onMouseenter(); })("mouseleave", function DrDropdownComponent_Template_div_mouseleave_2_listener() { return ctx.onMouseleave(); });
|
|
@@ -13646,9 +13646,8 @@ function DrGalleryComponent_dr_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
13646
13646
|
function DrGalleryComponent_div_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
13647
13647
|
i0.ɵɵelementContainer(0);
|
|
13648
13648
|
} }
|
|
13649
|
-
const _c2 = function (
|
|
13650
|
-
const _c3 = function () { return {}; };
|
|
13651
|
-
const _c4 = function (a0) { return { $implicit: a0 }; };
|
|
13649
|
+
const _c2 = function () { return {}; };
|
|
13650
|
+
const _c3 = function (a0) { return { $implicit: a0 }; };
|
|
13652
13651
|
function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
13653
13652
|
i0.ɵɵelementStart(0, "div", 6, 7);
|
|
13654
13653
|
i0.ɵɵtemplate(2, DrGalleryComponent_div_4_ng_container_2_Template, 1, 0, "ng-container", 8);
|
|
@@ -13658,9 +13657,10 @@ function DrGalleryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
13658
13657
|
const i_r7 = ctx.index;
|
|
13659
13658
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
13660
13659
|
i0.ɵɵstyleProp("transition", ctx_r2.transition);
|
|
13661
|
-
i0.ɵɵ
|
|
13660
|
+
i0.ɵɵclassProp("dr-gallery-item_active", ctx_r2.centerIndex === i_r7)("dr-gallery-item_fadein", ctx_r2.fadeIn && ctx_r2.centerIndex === i_r7 + 1);
|
|
13661
|
+
i0.ɵɵproperty("ngStyle", ctx_r2.modeType === "loop" ? ctx_r2.getStyle() : i0.ɵɵpureFunction0(9, _c2));
|
|
13662
13662
|
i0.ɵɵadvance(2);
|
|
13663
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(
|
|
13663
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(10, _c3, item_r6));
|
|
13664
13664
|
} }
|
|
13665
13665
|
function DrGalleryComponent_dr_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
13666
13666
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
@@ -13701,6 +13701,9 @@ class DrGalleryComponent {
|
|
|
13701
13701
|
this.noTransition = '0ms';
|
|
13702
13702
|
this.modeType = 'loop';
|
|
13703
13703
|
this.isOutsideBtns = false;
|
|
13704
|
+
this.fadeIn = false;
|
|
13705
|
+
this.autoPlay = false;
|
|
13706
|
+
this.autoplayInterval = 5000; //5 seconds
|
|
13704
13707
|
this.activeIndex = 0;
|
|
13705
13708
|
this.carouselItems = [];
|
|
13706
13709
|
this.transform = 'translateX(0%)';
|
|
@@ -13713,8 +13716,14 @@ class DrGalleryComponent {
|
|
|
13713
13716
|
setTimeout(() => {
|
|
13714
13717
|
this.calculateItemOffsets();
|
|
13715
13718
|
this.updateTransform();
|
|
13719
|
+
if (this.autoPlay) {
|
|
13720
|
+
this.startAutoplay();
|
|
13721
|
+
}
|
|
13716
13722
|
});
|
|
13717
13723
|
}
|
|
13724
|
+
ngOnDestroy() {
|
|
13725
|
+
this.clearAutoplay();
|
|
13726
|
+
}
|
|
13718
13727
|
initializeCarousel() {
|
|
13719
13728
|
if (this.modeType === 'loop') {
|
|
13720
13729
|
this.carouselItems = [
|
|
@@ -13783,11 +13792,18 @@ class DrGalleryComponent {
|
|
|
13783
13792
|
this.activeIndex++;
|
|
13784
13793
|
this.updateTransform();
|
|
13785
13794
|
}
|
|
13795
|
+
else {
|
|
13796
|
+
this.activeIndex = 0;
|
|
13797
|
+
this.updateTransform();
|
|
13798
|
+
}
|
|
13786
13799
|
}
|
|
13787
13800
|
}
|
|
13788
13801
|
navigate(index) {
|
|
13789
13802
|
this.activeIndex = index;
|
|
13790
13803
|
this.updateTransform();
|
|
13804
|
+
if (this.autoPlay) {
|
|
13805
|
+
this.startAutoplay();
|
|
13806
|
+
}
|
|
13791
13807
|
}
|
|
13792
13808
|
get canGoPrev() {
|
|
13793
13809
|
if (this.modeType === 'loop')
|
|
@@ -13824,6 +13840,18 @@ class DrGalleryComponent {
|
|
|
13824
13840
|
this.transition = this.defaultTransition;
|
|
13825
13841
|
this.cdr.markForCheck();
|
|
13826
13842
|
}
|
|
13843
|
+
startAutoplay() {
|
|
13844
|
+
this.clearAutoplay();
|
|
13845
|
+
this.autoplayTimer = setInterval(() => {
|
|
13846
|
+
this.next();
|
|
13847
|
+
}, this.autoplayInterval);
|
|
13848
|
+
}
|
|
13849
|
+
clearAutoplay() {
|
|
13850
|
+
if (this.autoplayTimer) {
|
|
13851
|
+
clearInterval(this.autoplayTimer);
|
|
13852
|
+
this.autoplayTimer = null;
|
|
13853
|
+
}
|
|
13854
|
+
}
|
|
13827
13855
|
/** @nocollapse */ static { this.ɵfac = function DrGalleryComponent_Factory(t) { return new (t || DrGalleryComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
13828
13856
|
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrGalleryComponent, selectors: [["dr-gallery"]], contentQueries: function DrGalleryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
13829
13857
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
|
@@ -13837,27 +13865,28 @@ class DrGalleryComponent {
|
|
|
13837
13865
|
let _t;
|
|
13838
13866
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerRef = _t.first);
|
|
13839
13867
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemElements = _t);
|
|
13840
|
-
} }, inputs: { modeType: "modeType", isOutsideBtns: "isOutsideBtns", items: "items", itemsCount: "itemsCount" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars:
|
|
13868
|
+
} }, 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) {
|
|
13841
13869
|
i0.ɵɵtemplate(0, DrGalleryComponent_dr_button_0_Template, 1, 1, "dr-button", 0);
|
|
13842
13870
|
i0.ɵɵelementStart(1, "div", null, 1)(3, "div", 2);
|
|
13843
|
-
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3,
|
|
13871
|
+
i0.ɵɵtemplate(4, DrGalleryComponent_div_4_Template, 3, 12, "div", 3);
|
|
13844
13872
|
i0.ɵɵelementEnd()();
|
|
13845
13873
|
i0.ɵɵtemplate(5, DrGalleryComponent_dr_button_5_Template, 1, 2, "dr-button", 4);
|
|
13846
13874
|
} if (rf & 2) {
|
|
13847
13875
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
13848
13876
|
i0.ɵɵadvance(1);
|
|
13849
13877
|
i0.ɵɵclassMapInterpolate1("dr-gallery-caroousel dr-gallery-caroousel_", ctx.modeType, "");
|
|
13878
|
+
i0.ɵɵclassProp("dr-gallery-caroousel_fadein", ctx.fadeIn);
|
|
13850
13879
|
i0.ɵɵadvance(2);
|
|
13851
13880
|
i0.ɵɵstyleProp("transition", ctx.transition)("transform", ctx.transform);
|
|
13852
13881
|
i0.ɵɵadvance(1);
|
|
13853
13882
|
i0.ɵɵproperty("ngForOf", ctx.carouselItems);
|
|
13854
13883
|
i0.ɵɵadvance(1);
|
|
13855
13884
|
i0.ɵɵproperty("ngIf", !ctx.isOutsideBtns);
|
|
13856
|
-
} }, dependencies: [CommonModule, i1.
|
|
13885
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, DrInputsModule, 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 }); }
|
|
13857
13886
|
}
|
|
13858
13887
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrGalleryComponent, [{
|
|
13859
13888
|
type: Component,
|
|
13860
|
-
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
|
|
13889
|
+
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"] }]
|
|
13861
13890
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { template: [{
|
|
13862
13891
|
type: ContentChild,
|
|
13863
13892
|
args: [TemplateRef]
|
|
@@ -13865,6 +13894,12 @@ class DrGalleryComponent {
|
|
|
13865
13894
|
type: Input
|
|
13866
13895
|
}], isOutsideBtns: [{
|
|
13867
13896
|
type: Input
|
|
13897
|
+
}], fadeIn: [{
|
|
13898
|
+
type: Input
|
|
13899
|
+
}], autoPlay: [{
|
|
13900
|
+
type: Input
|
|
13901
|
+
}], autoplayInterval: [{
|
|
13902
|
+
type: Input
|
|
13868
13903
|
}], items: [{
|
|
13869
13904
|
type: Input
|
|
13870
13905
|
}], itemsCount: [{
|