@edm-sdui/sdui 1.0.67 → 1.0.68
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/edm-sdui-sdui-1.0.68.tgz +0 -0
- package/esm2022/lib/components/uicomponent/scrollable-row/scrollable-row.component.mjs +75 -7
- package/fesm2022/edm-sdui-sdui.mjs +73 -5
- package/fesm2022/edm-sdui-sdui.mjs.map +1 -1
- package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts +16 -3
- package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/edm-sdui-sdui-1.0.67.tgz +0 -0
|
Binary file
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import { Component, ElementRef, Inject, Renderer2, ViewChild, } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, Inject, NgZone, Renderer2, ViewChild, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../uicomponent.component";
|
|
5
5
|
import * as i3 from "../../../directives/uiview.directive";
|
|
6
6
|
export class ScrollableRowComponent {
|
|
7
|
-
constructor(uiComponent, renderer) {
|
|
7
|
+
constructor(uiComponent, renderer, zone) {
|
|
8
8
|
this.uiComponent = uiComponent;
|
|
9
9
|
this.renderer = renderer;
|
|
10
|
+
this.zone = zone;
|
|
11
|
+
this.canScroll = false;
|
|
12
|
+
this.canPrev = false;
|
|
13
|
+
this.canNext = false;
|
|
10
14
|
}
|
|
11
15
|
ngOnInit() {
|
|
12
16
|
}
|
|
@@ -15,10 +19,74 @@ export class ScrollableRowComponent {
|
|
|
15
19
|
this.applyElement(this.uiComponent.element);
|
|
16
20
|
}
|
|
17
21
|
this.scroll();
|
|
22
|
+
setTimeout(() => this.updateTrackState(), 0);
|
|
23
|
+
this.resizeListener = () => this.updateTrackState();
|
|
24
|
+
window.addEventListener('resize', this.resizeListener);
|
|
25
|
+
if (typeof ResizeObserver !== 'undefined' && this.scrollableRowElementRef?.nativeElement) {
|
|
26
|
+
this.zone.runOutsideAngular(() => {
|
|
27
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
28
|
+
this.zone.run(() => this.updateTrackState());
|
|
29
|
+
});
|
|
30
|
+
this.resizeObserver.observe(this.scrollableRowElementRef.nativeElement);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
if (this.resizeListener) {
|
|
36
|
+
window.removeEventListener('resize', this.resizeListener);
|
|
37
|
+
}
|
|
38
|
+
this.resizeObserver?.disconnect();
|
|
39
|
+
}
|
|
40
|
+
onTrackScroll() {
|
|
41
|
+
this.updateTrackState();
|
|
42
|
+
}
|
|
43
|
+
prev() {
|
|
44
|
+
this.scrollByStep(-1);
|
|
45
|
+
}
|
|
46
|
+
next() {
|
|
47
|
+
this.scrollByStep(1);
|
|
18
48
|
}
|
|
19
49
|
applyElement(element) {
|
|
20
50
|
console.log(element);
|
|
21
51
|
}
|
|
52
|
+
updateTrackState() {
|
|
53
|
+
const track = this.scrollableRowElementRef?.nativeElement;
|
|
54
|
+
if (!track) {
|
|
55
|
+
this.canScroll = false;
|
|
56
|
+
this.canPrev = false;
|
|
57
|
+
this.canNext = false;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const maxLeft = Math.max(0, track.scrollWidth - track.clientWidth);
|
|
61
|
+
const left = Math.max(0, track.scrollLeft);
|
|
62
|
+
const tolerance = 2;
|
|
63
|
+
this.canScroll = maxLeft > tolerance;
|
|
64
|
+
this.canPrev = this.canScroll && left > tolerance;
|
|
65
|
+
this.canNext = this.canScroll && left < maxLeft - tolerance;
|
|
66
|
+
}
|
|
67
|
+
scrollByStep(direction) {
|
|
68
|
+
const track = this.scrollableRowElementRef?.nativeElement;
|
|
69
|
+
if (!track)
|
|
70
|
+
return;
|
|
71
|
+
const maxLeft = Math.max(0, track.scrollWidth - track.clientWidth);
|
|
72
|
+
const step = this.getTrackStep(track);
|
|
73
|
+
const targetLeft = Math.max(0, Math.min(maxLeft, track.scrollLeft + step * direction));
|
|
74
|
+
track.scrollTo({ left: targetLeft, behavior: 'smooth' });
|
|
75
|
+
setTimeout(() => this.updateTrackState(), 260);
|
|
76
|
+
}
|
|
77
|
+
getTrackStep(track) {
|
|
78
|
+
const firstItem = track.firstElementChild;
|
|
79
|
+
if (!firstItem)
|
|
80
|
+
return Math.max(1, track.clientWidth * 0.92);
|
|
81
|
+
const itemWidth = firstItem.getBoundingClientRect().width;
|
|
82
|
+
const styles = getComputedStyle(track);
|
|
83
|
+
const gapRaw = styles.columnGap || styles.gap || '0';
|
|
84
|
+
const gap = Number.parseFloat(gapRaw) || 0;
|
|
85
|
+
const cardStep = Math.max(1, itemWidth + gap);
|
|
86
|
+
const viewportStep = track.clientWidth * 0.92;
|
|
87
|
+
const cardsPerJump = Math.max(2, Math.floor(viewportStep / cardStep));
|
|
88
|
+
return Math.max(cardStep * cardsPerJump, viewportStep);
|
|
89
|
+
}
|
|
22
90
|
scroll() {
|
|
23
91
|
const scrollContainer = this.scrollableRowElementRef.nativeElement;
|
|
24
92
|
let isDown = false;
|
|
@@ -47,17 +115,17 @@ export class ScrollableRowComponent {
|
|
|
47
115
|
scrollContainer.scrollLeft = scrollLeft - walk;
|
|
48
116
|
});
|
|
49
117
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ScrollableRowComponent, isStandalone: false, selector: "edm-sdui-scrollable-row", viewQueries: [{ propertyName: "scrollableRowElementRef", first: true, predicate: ["scrollableRowElement"], descendants: true }], ngImport: i0, template: "<div\n #scrollableRowElement\n
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ScrollableRowComponent, isStandalone: false, selector: "edm-sdui-scrollable-row", viewQueries: [{ propertyName: "scrollableRowElementRef", first: true, predicate: ["scrollableRowElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"scrollable-row-shell\"\n [class.can-scroll]=\"canScroll\"\n [class.track-scrolled]=\"canPrev\"\n [class.track-at-end]=\"canScroll && !canNext\"\n *ngIf=\"uiComponent\"\n>\n <div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n (scroll)=\"onTrackScroll()\"\n >\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n </div>\n\n <button\n *ngIf=\"canScroll && canPrev\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--prev\"\n (click)=\"prev()\"\n aria-label=\"Anterior\"\n >\n ←\n </button>\n <button\n *ngIf=\"canScroll && canNext\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--next\"\n (click)=\"next()\"\n aria-label=\"Pr\u00F3ximo\"\n >\n →\n </button>\n</div>\n", styles: [":host{display:contents}.scrollable-row-shell{position:relative;width:100%}.scrollable-row-shell:before,.scrollable-row-shell:after{content:\"\";position:absolute;top:0;bottom:0;width:clamp(1.5rem,4vw,2.625rem);pointer-events:none;z-index:4;opacity:0;transition:opacity .2s ease}.scrollable-row-shell:before{left:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell:after{right:0;background:linear-gradient(270deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell.can-scroll:after{opacity:1}.scrollable-row-shell.track-scrolled:before{opacity:1}.scrollable-row-shell.track-at-end:after{opacity:0}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer;scroll-behavior:smooth;scroll-padding-left:var(--sdui-content-inset-left, 0px);scroll-padding-right:var(--sdui-content-inset-right, 0px)}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}.scrollable-row-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.34);background:#070a10c7;color:#f4f6fb;font-size:1.4rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:opacity .18s ease,background-color .2s ease,border-color .2s ease}.scrollable-row-nav:hover,.scrollable-row-nav:focus{background:#121622e6;border-color:#ffffff8a;outline:none}.scrollable-row-nav--prev{left:-.75rem}.scrollable-row-nav--next{right:-.75rem}:host-context(.rounded) .scrollable-row-nav{border-radius:3.75rem}:host-context(.square) .scrollable-row-nav{border-radius:10px}::ng-deep .column:has(.scrollable-row-shell){overflow:visible}@media (max-width: 767px){.scrollable-row-nav{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: i3.UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
|
|
52
120
|
}
|
|
53
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, decorators: [{
|
|
54
122
|
type: Component,
|
|
55
|
-
args: [{ selector: 'edm-sdui-scrollable-row', standalone: false, template: "<div\n #scrollableRowElement\n
|
|
123
|
+
args: [{ selector: 'edm-sdui-scrollable-row', standalone: false, template: "<div\n class=\"scrollable-row-shell\"\n [class.can-scroll]=\"canScroll\"\n [class.track-scrolled]=\"canPrev\"\n [class.track-at-end]=\"canScroll && !canNext\"\n *ngIf=\"uiComponent\"\n>\n <div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n (scroll)=\"onTrackScroll()\"\n >\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n </div>\n\n <button\n *ngIf=\"canScroll && canPrev\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--prev\"\n (click)=\"prev()\"\n aria-label=\"Anterior\"\n >\n ←\n </button>\n <button\n *ngIf=\"canScroll && canNext\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--next\"\n (click)=\"next()\"\n aria-label=\"Pr\u00F3ximo\"\n >\n →\n </button>\n</div>\n", styles: [":host{display:contents}.scrollable-row-shell{position:relative;width:100%}.scrollable-row-shell:before,.scrollable-row-shell:after{content:\"\";position:absolute;top:0;bottom:0;width:clamp(1.5rem,4vw,2.625rem);pointer-events:none;z-index:4;opacity:0;transition:opacity .2s ease}.scrollable-row-shell:before{left:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell:after{right:0;background:linear-gradient(270deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell.can-scroll:after{opacity:1}.scrollable-row-shell.track-scrolled:before{opacity:1}.scrollable-row-shell.track-at-end:after{opacity:0}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer;scroll-behavior:smooth;scroll-padding-left:var(--sdui-content-inset-left, 0px);scroll-padding-right:var(--sdui-content-inset-right, 0px)}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}.scrollable-row-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.34);background:#070a10c7;color:#f4f6fb;font-size:1.4rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:opacity .18s ease,background-color .2s ease,border-color .2s ease}.scrollable-row-nav:hover,.scrollable-row-nav:focus{background:#121622e6;border-color:#ffffff8a;outline:none}.scrollable-row-nav--prev{left:-.75rem}.scrollable-row-nav--next{right:-.75rem}:host-context(.rounded) .scrollable-row-nav{border-radius:3.75rem}:host-context(.square) .scrollable-row-nav{border-radius:10px}::ng-deep .column:has(.scrollable-row-shell){overflow:visible}@media (max-width: 767px){.scrollable-row-nav{display:none}}\n"] }]
|
|
56
124
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
57
125
|
type: Inject,
|
|
58
126
|
args: ['uiComponent']
|
|
59
|
-
}] }, { type: i0.Renderer2 }], propDecorators: { scrollableRowElementRef: [{
|
|
127
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }], propDecorators: { scrollableRowElementRef: [{
|
|
60
128
|
type: ViewChild,
|
|
61
129
|
args: ['scrollableRowElement']
|
|
62
130
|
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9zY3JvbGxhYmxlLXJvdy9zY3JvbGxhYmxlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Njcm9sbGFibGUtcm93L3Njcm9sbGFibGUtcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7OztBQWN2QixNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ2dDLFdBQXdCLEVBQzlDLFFBQW1CO1FBREcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUN6QixDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBa0I7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QixDQUFDO0lBR08sTUFBTTtRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7UUFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBYSxFQUFFLEVBQUU7WUFDbkUsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNkLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7WUFDOUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUN2RCxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNwRCxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBYSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNoQyxlQUFlLENBQUMsVUFBVSxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXJEVSxzQkFBc0Isa0JBSXZCLGFBQWE7bUdBSlosc0JBQXNCLHFOQ3RCbkMsd1JBWUE7OzRGRFVhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsS0FBSzs7MEJBTWQsTUFBTTsyQkFBQyxhQUFhO2lFQUhZLHVCQUF1QjtzQkFBekQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuaW1wb3J0IHsgVUlFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aWVsZW1lbnQnO1xuaW1wb3J0IHsgY29sb3JNYXBwaW5nIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL21hcHBpbmcvY29sb3ItbWFwcGluZyc7XG5pbXBvcnQgeyBGb250U2l6ZU1hcHBpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9mb250LXNpemUtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IGFzc2V0TWFwcGluZyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2Fzc2V0LW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlBc3NldCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWFzc2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRtLXNkdWktc2Nyb2xsYWJsZS1yb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsYWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2Nyb2xsYWJsZS1yb3cuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZVJvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGFibGVSb3dFbGVtZW50Jykgc2Nyb2xsYWJsZVJvd0VsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCd1aUNvbXBvbmVudCcpIHB1YmxpYyB1aUNvbXBvbmVudDogVUlDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVpQ29tcG9uZW50LmVsZW1lbnQpIHtcbiAgICAgIHRoaXMuYXBwbHlFbGVtZW50KHRoaXMudWlDb21wb25lbnQuZWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RWxlbWVudChlbGVtZW50OiBVSUVsZW1lbnQpIHtcbiAgICBjb25zb2xlLmxvZyhlbGVtZW50KVxuICB9XG5cblxuICBwcml2YXRlIHNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxDb250YWluZXIgPSB0aGlzLnNjcm9sbGFibGVSb3dFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGlzRG93biA9IGZhbHNlO1xuICAgIGxldCBzdGFydFggPSAwO1xuICAgIGxldCBzY3JvbGxMZWZ0ID0gMDtcblxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNjcm9sbENvbnRhaW5lciwgJ21vdXNlZG93bicsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpc0Rvd24gPSB0cnVlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ3Njcm9sbGluZycpO1xuICAgICAgc3RhcnRYID0gZS5wYWdlWCAtIHNjcm9sbENvbnRhaW5lci5vZmZzZXRMZWZ0O1xuICAgICAgc2Nyb2xsTGVmdCA9IHNjcm9sbENvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgIGlzRG93biA9IGZhbHNlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3Njcm9sbGluZycpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2V1cCcsICgpID0+IHtcbiAgICAgIGlzRG93biA9IGZhbHNlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3Njcm9sbGluZycpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2Vtb3ZlJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghaXNEb3duKSByZXR1cm47XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB4ID0gZS5wYWdlWCAtIHNjcm9sbENvbnRhaW5lci5vZmZzZXRMZWZ0O1xuICAgICAgY29uc3Qgd2FsayA9ICh4IC0gc3RhcnRYKSAqIDEuNTtcbiAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI3Njcm9sbGFibGVSb3dFbGVtZW50XG4gIFtlZG1TZHVpVmlld109XCJ1aUNvbXBvbmVudC5lbGVtZW50XCJcbiAgY2xhc3M9XCJzY3JvbGxhYmxlLXJvd1wiXG4gICpuZ0lmPVwidWlDb21wb25lbnRcIlxuPlxuICA8ZWRtLXNkdWktY29tcG9uZW50XG4gICAgKm5nRm9yPVwibGV0IGNvbXBvbmVudCBvZiB1aUNvbXBvbmVudC5jb21wb25lbnRzXCJcbiAgICBbdWlDb21wb25lbnRdPVwiY29tcG9uZW50XCJcbiAgPlxuICA8L2VkbS1zZHVpLWNvbXBvbmVudD5cbjwvZGl2PlxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9zY3JvbGxhYmxlLXJvdy9zY3JvbGxhYmxlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Njcm9sbGFibGUtcm93L3Njcm9sbGFibGUtcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBR04sU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVdkIsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNnQyxXQUF3QixFQUM5QyxRQUFtQixFQUNuQixJQUFZO1FBRlUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBVmYsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFTNUIsQ0FBQztJQUVMLFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLFVBQVUsQ0FBQyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVu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TUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFhLEVBQUUsRUFBRTtZQUNuRSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7WUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBL0lVLHNCQUFzQixrQkFXdkIsYUFBYTttR0FYWixzQkFBc0IscU5DcEJuQywyNkJBdUNBOzs0RkRuQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixLQUFLOzswQkFhZCxNQUFNOzJCQUFDLGFBQWE7c0ZBVlksdUJBQXVCO3NCQUF6RCxTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuaW1wb3J0IHsgVUlFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aWVsZW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZG0tc2R1aS1zY3JvbGxhYmxlLXJvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zY3JvbGxhYmxlLXJvdy5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxhYmxlUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdzY3JvbGxhYmxlUm93RWxlbWVudCcpIHNjcm9sbGFibGVSb3dFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHVibGljIGNhblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2FuUHJldjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2FuTmV4dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVzaXplTGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgndWlDb21wb25lbnQnKSBwdWJsaWMgdWlDb21wb25lbnQ6IFVJQ29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51aUNvbXBvbmVudC5lbGVtZW50KSB7XG4gICAgICB0aGlzLmFwcGx5RWxlbWVudCh0aGlzLnVpQ29tcG9uZW50LmVsZW1lbnQpO1xuICAgIH1cbiAgICB0aGlzLnNjcm9sbCgpO1xuICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4gdGhpcy51cGRhdGVUcmFja1N0YXRlKCksIDApO1xuXG4gICAgdGhpcy5yZXNpemVMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHRoaXMudXBkYXRlVHJhY2tTdGF0ZSgpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc2Nyb2xsYWJsZVJvd0VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCk6IHZvaWQgPT4gdGhpcy51cGRhdGVUcmFja1N0YXRlKCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciEub2JzZXJ2ZSh0aGlzLnNjcm9sbGFibGVSb3dFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcbiAgICB9XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgb25UcmFja1Njcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVRyYWNrU3RhdGUoKTtcbiAgfVxuXG4gIHByZXYoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxCeVN0ZXAoLTEpO1xuICB9XG5cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbEJ5U3RlcCgxKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlFbGVtZW50KGVsZW1lbnQ6IFVJRWxlbWVudCkge1xuICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRyYWNrU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgdHJhY2sgPSB0aGlzLnNjcm9sbGFibGVSb3dFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghdHJhY2spIHtcbiAgICAgIHRoaXMuY2FuU2Nyb2xsID0gZmFsc2U7XG4gICAgICB0aGlzLmNhblByZXYgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2FuTmV4dCA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1heExlZnQ6IG51bWJlciA9IE1hdGgubWF4KDAsIHRyYWNrLnNjcm9sbFdpZHRoIC0gdHJhY2suY2xpZW50V2lkdGgpO1xuICAgIGNvbnN0IGxlZnQ6IG51bWJlciA9IE1hdGgubWF4KDAsIHRyYWNrLnNjcm9sbExlZnQpO1xuICAgIGNvbnN0IHRvbGVyYW5jZTogbnVtYmVyID0gMjtcblxuICAgIHRoaXMuY2FuU2Nyb2xsID0gbWF4TGVmdCA+IHRvbGVyYW5jZTtcbiAgICB0aGlzLmNhblByZXYgPSB0aGlzLmNhblNjcm9sbCAmJiBsZWZ0ID4gdG9sZXJhbmNlO1xuICAgIHRoaXMuY2FuTmV4dCA9IHRoaXMuY2FuU2Nyb2xsICYmIGxlZnQgPCBtYXhMZWZ0IC0gdG9sZXJhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxCeVN0ZXAoZGlyZWN0aW9uOiAxIHwgLTEpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFjayA9IHRoaXMuc2Nyb2xsYWJsZVJvd0VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCF0cmFjaykgcmV0dXJuO1xuXG4gICAgY29uc3QgbWF4TGVmdDogbnVtYmVyID0gTWF0aC5tYXgoMCwgdHJhY2suc2Nyb2xsV2lkdGggLSB0cmFjay5jbGllbnRXaWR0aCk7XG4gICAgY29uc3Qgc3RlcDogbnVtYmVyID0gdGhpcy5nZXRUcmFja1N0ZXAodHJhY2spO1xuICAgIGNvbnN0IHRhcmdldExlZnQ6IG51bWJlciA9IE1hdGgubWF4KFxuICAgICAgMCxcbiAgICAgIE1hdGgubWluKG1heExlZnQsIHRyYWNrLnNjcm9sbExlZnQgKyBzdGVwICogZGlyZWN0aW9uKSxcbiAgICApO1xuXG4gICAgdHJhY2suc2Nyb2xsVG8oeyBsZWZ0OiB0YXJnZXRMZWZ0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB0aGlzLnVwZGF0ZVRyYWNrU3RhdGUoKSwgMjYwKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhY2tTdGVwKHRyYWNrOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgY29uc3QgZmlyc3RJdGVtID0gdHJhY2suZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghZmlyc3RJdGVtKSByZXR1cm4gTWF0aC5tYXgoMSwgdHJhY2suY2xpZW50V2lkdGggKiAwLjkyKTtcblxuICAgIGNvbnN0IGl0ZW1XaWR0aDogbnVtYmVyID0gZmlyc3RJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIGNvbnN0IHN0eWxlczogQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGdldENvbXB1dGVkU3R5bGUodHJhY2spO1xuICAgIGNvbnN0IGdhcFJhdzogc3RyaW5nID0gc3R5bGVzLmNvbHVtbkdhcCB8fCBzdHlsZXMuZ2FwIHx8ICcwJztcbiAgICBjb25zdCBnYXA6IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGdhcFJhdykgfHwgMDtcbiAgICBjb25zdCBjYXJkU3RlcDogbnVtYmVyID0gTWF0aC5tYXgoMSwgaXRlbVdpZHRoICsgZ2FwKTtcbiAgICBjb25zdCB2aWV3cG9ydFN0ZXA6IG51bWJlciA9IHRyYWNrLmNsaWVudFdpZHRoICogMC45MjtcbiAgICBjb25zdCBjYXJkc1Blckp1bXA6IG51bWJlciA9IE1hdGgubWF4KFxuICAgICAgMixcbiAgICAgIE1hdGguZmxvb3Iodmlld3BvcnRTdGVwIC8gY2FyZFN0ZXApLFxuICAgICk7XG5cbiAgICByZXR1cm4gTWF0aC5tYXgoY2FyZFN0ZXAgKiBjYXJkc1Blckp1bXAsIHZpZXdwb3J0U3RlcCk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxDb250YWluZXIgPSB0aGlzLnNjcm9sbGFibGVSb3dFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGlzRG93biA9IGZhbHNlO1xuICAgIGxldCBzdGFydFggPSAwO1xuICAgIGxldCBzY3JvbGxMZWZ0ID0gMDtcblxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNjcm9sbENvbnRhaW5lciwgJ21vdXNlZG93bicsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpc0Rvd24gPSB0cnVlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ3Njcm9sbGluZycpO1xuICAgICAgc3RhcnRYID0gZS5wYWdlWCAtIHNjcm9sbENvbnRhaW5lci5vZmZzZXRMZWZ0O1xuICAgICAgc2Nyb2xsTGVmdCA9IHNjcm9sbENvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgIGlzRG93biA9IGZhbHNlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3Njcm9sbGluZycpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2V1cCcsICgpID0+IHtcbiAgICAgIGlzRG93biA9IGZhbHNlO1xuICAgICAgc2Nyb2xsQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3Njcm9sbGluZycpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2Nyb2xsQ29udGFpbmVyLCAnbW91c2Vtb3ZlJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghaXNEb3duKSByZXR1cm47XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB4ID0gZS5wYWdlWCAtIHNjcm9sbENvbnRhaW5lci5vZmZzZXRMZWZ0O1xuICAgICAgY29uc3Qgd2FsayA9ICh4IC0gc3RhcnRYKSAqIDEuNTtcbiAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzY3JvbGxhYmxlLXJvdy1zaGVsbFwiXG4gIFtjbGFzcy5jYW4tc2Nyb2xsXT1cImNhblNjcm9sbFwiXG4gIFtjbGFzcy50cmFjay1zY3JvbGxlZF09XCJjYW5QcmV2XCJcbiAgW2NsYXNzLnRyYWNrLWF0LWVuZF09XCJjYW5TY3JvbGwgJiYgIWNhbk5leHRcIlxuICAqbmdJZj1cInVpQ29tcG9uZW50XCJcbj5cbiAgPGRpdlxuICAgICNzY3JvbGxhYmxlUm93RWxlbWVudFxuICAgIFtlZG1TZHVpVmlld109XCJ1aUNvbXBvbmVudC5lbGVtZW50XCJcbiAgICBjbGFzcz1cInNjcm9sbGFibGUtcm93XCJcbiAgICAoc2Nyb2xsKT1cIm9uVHJhY2tTY3JvbGwoKVwiXG4gID5cbiAgICA8ZWRtLXNkdWktY29tcG9uZW50XG4gICAgICAqbmdGb3I9XCJsZXQgY29tcG9uZW50IG9mIHVpQ29tcG9uZW50LmNvbXBvbmVudHNcIlxuICAgICAgW3VpQ29tcG9uZW50XT1cImNvbXBvbmVudFwiXG4gICAgPlxuICAgIDwvZWRtLXNkdWktY29tcG9uZW50PlxuICA8L2Rpdj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJjYW5TY3JvbGwgJiYgY2FuUHJldlwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJzY3JvbGxhYmxlLXJvdy1uYXYgc2Nyb2xsYWJsZS1yb3ctbmF2LS1wcmV2XCJcbiAgICAoY2xpY2spPVwicHJldigpXCJcbiAgICBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIlxuICA+XG4gICAgJiM4NTkyO1xuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiY2FuU2Nyb2xsICYmIGNhbk5leHRcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2Nyb2xsYWJsZS1yb3ctbmF2IHNjcm9sbGFibGUtcm93LW5hdi0tbmV4dFwiXG4gICAgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgYXJpYS1sYWJlbD1cIlByw7N4aW1vXCJcbiAgPlxuICAgICYjODU5NDtcbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -4131,9 +4131,13 @@ var picker_component = /*#__PURE__*/Object.freeze({
|
|
|
4131
4131
|
});
|
|
4132
4132
|
|
|
4133
4133
|
class ScrollableRowComponent {
|
|
4134
|
-
constructor(uiComponent, renderer) {
|
|
4134
|
+
constructor(uiComponent, renderer, zone) {
|
|
4135
4135
|
this.uiComponent = uiComponent;
|
|
4136
4136
|
this.renderer = renderer;
|
|
4137
|
+
this.zone = zone;
|
|
4138
|
+
this.canScroll = false;
|
|
4139
|
+
this.canPrev = false;
|
|
4140
|
+
this.canNext = false;
|
|
4137
4141
|
}
|
|
4138
4142
|
ngOnInit() {
|
|
4139
4143
|
}
|
|
@@ -4142,10 +4146,74 @@ class ScrollableRowComponent {
|
|
|
4142
4146
|
this.applyElement(this.uiComponent.element);
|
|
4143
4147
|
}
|
|
4144
4148
|
this.scroll();
|
|
4149
|
+
setTimeout(() => this.updateTrackState(), 0);
|
|
4150
|
+
this.resizeListener = () => this.updateTrackState();
|
|
4151
|
+
window.addEventListener('resize', this.resizeListener);
|
|
4152
|
+
if (typeof ResizeObserver !== 'undefined' && this.scrollableRowElementRef?.nativeElement) {
|
|
4153
|
+
this.zone.runOutsideAngular(() => {
|
|
4154
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
4155
|
+
this.zone.run(() => this.updateTrackState());
|
|
4156
|
+
});
|
|
4157
|
+
this.resizeObserver.observe(this.scrollableRowElementRef.nativeElement);
|
|
4158
|
+
});
|
|
4159
|
+
}
|
|
4160
|
+
}
|
|
4161
|
+
ngOnDestroy() {
|
|
4162
|
+
if (this.resizeListener) {
|
|
4163
|
+
window.removeEventListener('resize', this.resizeListener);
|
|
4164
|
+
}
|
|
4165
|
+
this.resizeObserver?.disconnect();
|
|
4166
|
+
}
|
|
4167
|
+
onTrackScroll() {
|
|
4168
|
+
this.updateTrackState();
|
|
4169
|
+
}
|
|
4170
|
+
prev() {
|
|
4171
|
+
this.scrollByStep(-1);
|
|
4172
|
+
}
|
|
4173
|
+
next() {
|
|
4174
|
+
this.scrollByStep(1);
|
|
4145
4175
|
}
|
|
4146
4176
|
applyElement(element) {
|
|
4147
4177
|
console.log(element);
|
|
4148
4178
|
}
|
|
4179
|
+
updateTrackState() {
|
|
4180
|
+
const track = this.scrollableRowElementRef?.nativeElement;
|
|
4181
|
+
if (!track) {
|
|
4182
|
+
this.canScroll = false;
|
|
4183
|
+
this.canPrev = false;
|
|
4184
|
+
this.canNext = false;
|
|
4185
|
+
return;
|
|
4186
|
+
}
|
|
4187
|
+
const maxLeft = Math.max(0, track.scrollWidth - track.clientWidth);
|
|
4188
|
+
const left = Math.max(0, track.scrollLeft);
|
|
4189
|
+
const tolerance = 2;
|
|
4190
|
+
this.canScroll = maxLeft > tolerance;
|
|
4191
|
+
this.canPrev = this.canScroll && left > tolerance;
|
|
4192
|
+
this.canNext = this.canScroll && left < maxLeft - tolerance;
|
|
4193
|
+
}
|
|
4194
|
+
scrollByStep(direction) {
|
|
4195
|
+
const track = this.scrollableRowElementRef?.nativeElement;
|
|
4196
|
+
if (!track)
|
|
4197
|
+
return;
|
|
4198
|
+
const maxLeft = Math.max(0, track.scrollWidth - track.clientWidth);
|
|
4199
|
+
const step = this.getTrackStep(track);
|
|
4200
|
+
const targetLeft = Math.max(0, Math.min(maxLeft, track.scrollLeft + step * direction));
|
|
4201
|
+
track.scrollTo({ left: targetLeft, behavior: 'smooth' });
|
|
4202
|
+
setTimeout(() => this.updateTrackState(), 260);
|
|
4203
|
+
}
|
|
4204
|
+
getTrackStep(track) {
|
|
4205
|
+
const firstItem = track.firstElementChild;
|
|
4206
|
+
if (!firstItem)
|
|
4207
|
+
return Math.max(1, track.clientWidth * 0.92);
|
|
4208
|
+
const itemWidth = firstItem.getBoundingClientRect().width;
|
|
4209
|
+
const styles = getComputedStyle(track);
|
|
4210
|
+
const gapRaw = styles.columnGap || styles.gap || '0';
|
|
4211
|
+
const gap = Number.parseFloat(gapRaw) || 0;
|
|
4212
|
+
const cardStep = Math.max(1, itemWidth + gap);
|
|
4213
|
+
const viewportStep = track.clientWidth * 0.92;
|
|
4214
|
+
const cardsPerJump = Math.max(2, Math.floor(viewportStep / cardStep));
|
|
4215
|
+
return Math.max(cardStep * cardsPerJump, viewportStep);
|
|
4216
|
+
}
|
|
4149
4217
|
scroll() {
|
|
4150
4218
|
const scrollContainer = this.scrollableRowElementRef.nativeElement;
|
|
4151
4219
|
let isDown = false;
|
|
@@ -4174,16 +4242,16 @@ class ScrollableRowComponent {
|
|
|
4174
4242
|
scrollContainer.scrollLeft = scrollLeft - walk;
|
|
4175
4243
|
});
|
|
4176
4244
|
}
|
|
4177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ScrollableRowComponent, isStandalone: false, selector: "edm-sdui-scrollable-row", viewQueries: [{ propertyName: "scrollableRowElementRef", first: true, predicate: ["scrollableRowElement"], descendants: true }], ngImport: i0, template: "<div\n #scrollableRowElement\n
|
|
4245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4246
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ScrollableRowComponent, isStandalone: false, selector: "edm-sdui-scrollable-row", viewQueries: [{ propertyName: "scrollableRowElementRef", first: true, predicate: ["scrollableRowElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"scrollable-row-shell\"\n [class.can-scroll]=\"canScroll\"\n [class.track-scrolled]=\"canPrev\"\n [class.track-at-end]=\"canScroll && !canNext\"\n *ngIf=\"uiComponent\"\n>\n <div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n (scroll)=\"onTrackScroll()\"\n >\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n </div>\n\n <button\n *ngIf=\"canScroll && canPrev\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--prev\"\n (click)=\"prev()\"\n aria-label=\"Anterior\"\n >\n ←\n </button>\n <button\n *ngIf=\"canScroll && canNext\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--next\"\n (click)=\"next()\"\n aria-label=\"Pr\u00F3ximo\"\n >\n →\n </button>\n</div>\n", styles: [":host{display:contents}.scrollable-row-shell{position:relative;width:100%}.scrollable-row-shell:before,.scrollable-row-shell:after{content:\"\";position:absolute;top:0;bottom:0;width:clamp(1.5rem,4vw,2.625rem);pointer-events:none;z-index:4;opacity:0;transition:opacity .2s ease}.scrollable-row-shell:before{left:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell:after{right:0;background:linear-gradient(270deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell.can-scroll:after{opacity:1}.scrollable-row-shell.track-scrolled:before{opacity:1}.scrollable-row-shell.track-at-end:after{opacity:0}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer;scroll-behavior:smooth;scroll-padding-left:var(--sdui-content-inset-left, 0px);scroll-padding-right:var(--sdui-content-inset-right, 0px)}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}.scrollable-row-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.34);background:#070a10c7;color:#f4f6fb;font-size:1.4rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:opacity .18s ease,background-color .2s ease,border-color .2s ease}.scrollable-row-nav:hover,.scrollable-row-nav:focus{background:#121622e6;border-color:#ffffff8a;outline:none}.scrollable-row-nav--prev{left:-.75rem}.scrollable-row-nav--next{right:-.75rem}:host-context(.rounded) .scrollable-row-nav{border-radius:3.75rem}:host-context(.square) .scrollable-row-nav{border-radius:10px}::ng-deep .column:has(.scrollable-row-shell){overflow:visible}@media (max-width: 767px){.scrollable-row-nav{display:none}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
|
|
4179
4247
|
}
|
|
4180
4248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableRowComponent, decorators: [{
|
|
4181
4249
|
type: Component,
|
|
4182
|
-
args: [{ selector: 'edm-sdui-scrollable-row', standalone: false, template: "<div\n #scrollableRowElement\n
|
|
4250
|
+
args: [{ selector: 'edm-sdui-scrollable-row', standalone: false, template: "<div\n class=\"scrollable-row-shell\"\n [class.can-scroll]=\"canScroll\"\n [class.track-scrolled]=\"canPrev\"\n [class.track-at-end]=\"canScroll && !canNext\"\n *ngIf=\"uiComponent\"\n>\n <div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n (scroll)=\"onTrackScroll()\"\n >\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n </div>\n\n <button\n *ngIf=\"canScroll && canPrev\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--prev\"\n (click)=\"prev()\"\n aria-label=\"Anterior\"\n >\n ←\n </button>\n <button\n *ngIf=\"canScroll && canNext\"\n type=\"button\"\n class=\"scrollable-row-nav scrollable-row-nav--next\"\n (click)=\"next()\"\n aria-label=\"Pr\u00F3ximo\"\n >\n →\n </button>\n</div>\n", styles: [":host{display:contents}.scrollable-row-shell{position:relative;width:100%}.scrollable-row-shell:before,.scrollable-row-shell:after{content:\"\";position:absolute;top:0;bottom:0;width:clamp(1.5rem,4vw,2.625rem);pointer-events:none;z-index:4;opacity:0;transition:opacity .2s ease}.scrollable-row-shell:before{left:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell:after{right:0;background:linear-gradient(270deg,var(--bg) 0%,transparent 100%)}.scrollable-row-shell.can-scroll:after{opacity:1}.scrollable-row-shell.track-scrolled:before{opacity:1}.scrollable-row-shell.track-at-end:after{opacity:0}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer;scroll-behavior:smooth;scroll-padding-left:var(--sdui-content-inset-left, 0px);scroll-padding-right:var(--sdui-content-inset-right, 0px)}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}.scrollable-row-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.34);background:#070a10c7;color:#f4f6fb;font-size:1.4rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:opacity .18s ease,background-color .2s ease,border-color .2s ease}.scrollable-row-nav:hover,.scrollable-row-nav:focus{background:#121622e6;border-color:#ffffff8a;outline:none}.scrollable-row-nav--prev{left:-.75rem}.scrollable-row-nav--next{right:-.75rem}:host-context(.rounded) .scrollable-row-nav{border-radius:3.75rem}:host-context(.square) .scrollable-row-nav{border-radius:10px}::ng-deep .column:has(.scrollable-row-shell){overflow:visible}@media (max-width: 767px){.scrollable-row-nav{display:none}}\n"] }]
|
|
4183
4251
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4184
4252
|
type: Inject,
|
|
4185
4253
|
args: ['uiComponent']
|
|
4186
|
-
}] }, { type: i0.Renderer2 }], propDecorators: { scrollableRowElementRef: [{
|
|
4254
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }], propDecorators: { scrollableRowElementRef: [{
|
|
4187
4255
|
type: ViewChild,
|
|
4188
4256
|
args: ['scrollableRowElement']
|
|
4189
4257
|
}] } });
|