@rivet-health/design-system 2.21.0 → 2.23.0

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.
@@ -0,0 +1,63 @@
1
+ import { Directive, Input, } from '@angular/core';
2
+ import { TooltipDirective } from '../../modal/tooltip/tooltip.directive';
3
+ import * as i0 from "@angular/core";
4
+ // Credit to boneskull on Github, whose work I used as a reference
5
+ export class SVGTextTruncateDirective extends TooltipDirective {
6
+ constructor(el, applicationRef) {
7
+ super(el, applicationRef);
8
+ this.el = el;
9
+ this.applicationRef = applicationRef;
10
+ this.text = '';
11
+ this.width = 50;
12
+ }
13
+ ngOnInit() {
14
+ this.svgTruncate(this.el.nativeElement);
15
+ }
16
+ // Truncate through setting strings as the text-content and testing their width
17
+ svgTruncate(element) {
18
+ let currentLength = this.text.length;
19
+ element.textContent = this.text;
20
+ // If the text can fit in the given width, no truncation needed.
21
+ if (currentLength > 0 &&
22
+ element.getSubStringLength(0, currentLength) <= this.width) {
23
+ element.textContent = this.text;
24
+ this.rivTooltip = '';
25
+ }
26
+ else {
27
+ /*
28
+ Test the length of each "substring + ..." combo until we find one that fits.
29
+ Start by making room for the elipses by subtracting 3 from the length.
30
+ */
31
+ currentLength = currentLength - 3;
32
+ let currentTextFitsInWidth = false;
33
+ while (currentLength > 0 && !currentTextFitsInWidth) {
34
+ const currentTextToTry = this.text.slice(0, currentLength) + '...';
35
+ element.textContent = currentTextToTry;
36
+ if (element.getSubStringLength(0, currentTextToTry.length) <= this.width) {
37
+ currentTextFitsInWidth = true;
38
+ }
39
+ else {
40
+ currentLength--;
41
+ }
42
+ }
43
+ // If we end up not finding a width of text that works, display just the ellipses.
44
+ if (!currentTextFitsInWidth) {
45
+ element.textContent = '...';
46
+ }
47
+ this.rivTooltip = this.text;
48
+ }
49
+ }
50
+ }
51
+ SVGTextTruncateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SVGTextTruncateDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive });
52
+ SVGTextTruncateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: SVGTextTruncateDirective, selector: "svg text[rivSVGTextTruncate]", inputs: { text: "text", width: "width" }, usesInheritance: true, ngImport: i0 });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SVGTextTruncateDirective, decorators: [{
54
+ type: Directive,
55
+ args: [{
56
+ selector: 'svg text[rivSVGTextTruncate]',
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ApplicationRef }]; }, propDecorators: { text: [{
59
+ type: Input
60
+ }], width: [{
61
+ type: Input
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLXRleHQtdHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3N2Zy10ZXh0LXRydW5jYXRlL3N2Zy10ZXh0LXRydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFFekUsa0VBQWtFO0FBSWxFLE1BQU0sT0FBTyx3QkFDWCxTQUFRLGdCQUFnQjtJQVN4QixZQUM4QixFQUFjLEVBQ2QsY0FBOEI7UUFFMUQsS0FBSyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUhFLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQNUQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUdsQixVQUFLLEdBQVcsRUFBRSxDQUFDO0lBT25CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLElBQUksYUFBYSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTdDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxnRUFBZ0U7UUFDaEUsSUFDRSxhQUFhLEdBQUcsQ0FBQztZQUNqQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQzFEO1lBQ0EsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTDs7O2NBR0U7WUFDRixhQUFhLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLHNCQUFzQixHQUFZLEtBQUssQ0FBQztZQUM1QyxPQUFPLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDbkQsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFFNUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztnQkFFdkMsSUFDRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQ3BFO29CQUNBLHNCQUFzQixHQUFHLElBQUksQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsYUFBYSxFQUFFLENBQUM7aUJBQ2pCO2FBQ0Y7WUFFRCxrRkFBa0Y7WUFDbEYsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUMzQixPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUM3QjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7O3FIQTdEVSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7aUJBQ3pDOzhIQU1DLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuLy8gQ3JlZGl0IHRvIGJvbmVza3VsbCBvbiBHaXRodWIsIHdob3NlIHdvcmsgSSB1c2VkIGFzIGEgcmVmZXJlbmNlXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzdmcgdGV4dFtyaXZTVkdUZXh0VHJ1bmNhdGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlXG4gIGV4dGVuZHMgVG9vbHRpcERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKVxuICB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICB3aWR0aDogbnVtYmVyID0gNTA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICkge1xuICAgIHN1cGVyKGVsLCBhcHBsaWNhdGlvblJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN2Z1RydW5jYXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvLyBUcnVuY2F0ZSB0aHJvdWdoIHNldHRpbmcgc3RyaW5ncyBhcyB0aGUgdGV4dC1jb250ZW50IGFuZCB0ZXN0aW5nIHRoZWlyIHdpZHRoXG4gIHN2Z1RydW5jYXRlKGVsZW1lbnQ6IFNWR1RleHRDb250ZW50RWxlbWVudCkge1xuICAgIGxldCBjdXJyZW50TGVuZ3RoOiBudW1iZXIgPSB0aGlzLnRleHQubGVuZ3RoO1xuXG4gICAgZWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMudGV4dDtcbiAgICAvLyBJZiB0aGUgdGV4dCBjYW4gZml0IGluIHRoZSBnaXZlbiB3aWR0aCwgbm8gdHJ1bmNhdGlvbiBuZWVkZWQuXG4gICAgaWYgKFxuICAgICAgY3VycmVudExlbmd0aCA+IDAgJiZcbiAgICAgIGVsZW1lbnQuZ2V0U3ViU3RyaW5nTGVuZ3RoKDAsIGN1cnJlbnRMZW5ndGgpIDw9IHRoaXMud2lkdGhcbiAgICApIHtcbiAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnRleHQ7XG4gICAgICB0aGlzLnJpdlRvb2x0aXAgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLypcbiAgICAgICAgVGVzdCB0aGUgbGVuZ3RoIG9mIGVhY2ggXCJzdWJzdHJpbmcgKyAuLi5cIiBjb21ibyB1bnRpbCB3ZSBmaW5kIG9uZSB0aGF0IGZpdHMuXG4gICAgICAgIFN0YXJ0IGJ5IG1ha2luZyByb29tIGZvciB0aGUgZWxpcHNlcyBieSBzdWJ0cmFjdGluZyAzIGZyb20gdGhlIGxlbmd0aC5cbiAgICAgICovXG4gICAgICBjdXJyZW50TGVuZ3RoID0gY3VycmVudExlbmd0aCAtIDM7XG4gICAgICBsZXQgY3VycmVudFRleHRGaXRzSW5XaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgd2hpbGUgKGN1cnJlbnRMZW5ndGggPiAwICYmICFjdXJyZW50VGV4dEZpdHNJbldpZHRoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXh0VG9Ucnk6IHN0cmluZyA9XG4gICAgICAgICAgdGhpcy50ZXh0LnNsaWNlKDAsIGN1cnJlbnRMZW5ndGgpICsgJy4uLic7XG5cbiAgICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IGN1cnJlbnRUZXh0VG9Ucnk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGVsZW1lbnQuZ2V0U3ViU3RyaW5nTGVuZ3RoKDAsIGN1cnJlbnRUZXh0VG9UcnkubGVuZ3RoKSA8PSB0aGlzLndpZHRoXG4gICAgICAgICkge1xuICAgICAgICAgIGN1cnJlbnRUZXh0Rml0c0luV2lkdGggPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRMZW5ndGgtLTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBlbmQgdXAgbm90IGZpbmRpbmcgYSB3aWR0aCBvZiB0ZXh0IHRoYXQgd29ya3MsIGRpc3BsYXkganVzdCB0aGUgZWxsaXBzZXMuXG4gICAgICBpZiAoIWN1cnJlbnRUZXh0Rml0c0luV2lkdGgpIHtcbiAgICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9ICcuLi4nO1xuICAgICAgfVxuICAgICAgdGhpcy5yaXZUb29sdGlwID0gdGhpcy50ZXh0O1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,50 @@
1
+ import { ChangeDetectionStrategy, Component, HostListener, Input, Self, } from '@angular/core';
2
+ import { TooltipDirective } from '../../modal/tooltip/tooltip.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../modal/tooltip/tooltip.directive";
5
+ function scrolled(element) {
6
+ return element.offsetWidth < element.scrollWidth;
7
+ }
8
+ /**
9
+ * Truncate the text to one line. When truncated, display the full text in a tooltip.
10
+ */
11
+ export class TruncateComponent {
12
+ constructor(element,
13
+ // For performance reasons, take more control
14
+ tooltip) {
15
+ this.element = element;
16
+ this.tooltip = tooltip;
17
+ this.maxTooltipWidth = '200px';
18
+ }
19
+ enter() {
20
+ if (scrolled(this.element.nativeElement)) {
21
+ this.tooltip.rivTooltip = this.element.nativeElement.textContent;
22
+ this.tooltip.rivTooltipMaxWidth = this.maxTooltipWidth;
23
+ this.tooltip.onMouseEnter();
24
+ }
25
+ }
26
+ leave() {
27
+ this.tooltip.onMouseLeave();
28
+ }
29
+ // For the auto-complete textbox.
30
+ scrollIntoView() {
31
+ this.element.nativeElement.scrollIntoView(false);
32
+ }
33
+ }
34
+ TruncateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TruncateComponent, deps: [{ token: i0.ElementRef }, { token: i1.TooltipDirective, self: true }], target: i0.ɵɵFactoryTarget.Component });
35
+ TruncateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TruncateComponent, selector: "[rivTruncate]", inputs: { maxTooltipWidth: "maxTooltipWidth" }, host: { listeners: { "mouseenter": "enter()", "mouseleave": "leave()" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a:host{display:block;max-width:100%}\n"], viewProviders: [TooltipDirective], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TruncateComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: '[rivTruncate]', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [TooltipDirective], template: "<ng-content></ng-content>\n", styles: [":host{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a:host{display:block;max-width:100%}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TooltipDirective, decorators: [{
40
+ type: Self
41
+ }] }]; }, propDecorators: { maxTooltipWidth: [{
42
+ type: Input
43
+ }], enter: [{
44
+ type: HostListener,
45
+ args: ['mouseenter']
46
+ }], leave: [{
47
+ type: HostListener,
48
+ args: ['mouseleave']
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3RydW5jYXRlL3RydW5jYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2Zvcm1hdC90cnVuY2F0ZS90cnVuY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRXpFLFNBQVMsUUFBUSxDQUFDLE9BQW9CO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ25ELENBQUM7QUFFRDs7R0FFRztBQVFILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDbUIsT0FBbUI7SUFDcEMsNkNBQTZDO0lBQ3BCLE9BQXlCO1FBRmpDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFFWCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUlwRCxvQkFBZSxHQUFXLE9BQU8sQ0FBQztJQUgvQixDQUFDO0lBTUosS0FBSztRQUNILElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUdELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsY0FBYztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs4R0EzQlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0xDeEI5Qiw2QkFDQSxxSURxQmlCLENBQUMsZ0JBQWdCLENBQUM7MkZBRXRCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsZ0JBQWdCLENBQUM7OzBCQU05QixJQUFJOzRDQUlQLGVBQWU7c0JBRGQsS0FBSztnQkFJTixLQUFLO3NCQURKLFlBQVk7dUJBQUMsWUFBWTtnQkFVMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuZnVuY3Rpb24gc2Nyb2xsZWQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0V2lkdGggPCBlbGVtZW50LnNjcm9sbFdpZHRoO1xufVxuXG4vKipcbiAqIFRydW5jYXRlIHRoZSB0ZXh0IHRvIG9uZSBsaW5lLiBXaGVuIHRydW5jYXRlZCwgZGlzcGxheSB0aGUgZnVsbCB0ZXh0IGluIGEgdG9vbHRpcC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3JpdlRydW5jYXRlXScsXG4gIHN0eWxlVXJsczogWycuL3RydW5jYXRlLmNvbXBvbmVudC5jc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydW5jYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtUb29sdGlwRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRha2UgbW9yZSBjb250cm9sXG4gICAgQFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBEaXJlY3RpdmUsXG4gICkge31cblxuICBASW5wdXQoKVxuICBtYXhUb29sdGlwV2lkdGg6IHN0cmluZyA9ICcyMDBweCc7XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIGVudGVyKCkge1xuICAgIGlmIChzY3JvbGxlZCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgIHRoaXMudG9vbHRpcC5yaXZUb29sdGlwID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgICB0aGlzLnRvb2x0aXAucml2VG9vbHRpcE1heFdpZHRoID0gdGhpcy5tYXhUb29sdGlwV2lkdGg7XG4gICAgICB0aGlzLnRvb2x0aXAub25Nb3VzZUVudGVyKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIGxlYXZlKCkge1xuICAgIHRoaXMudG9vbHRpcC5vbk1vdXNlTGVhdmUoKTtcbiAgfVxuXG4gIC8vIEZvciB0aGUgYXV0by1jb21wbGV0ZSB0ZXh0Ym94LlxuICBzY3JvbGxJbnRvVmlldygpIHtcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
70
70
  type: HostListener,
71
71
  args: ['mouseleave']
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEyQixnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtoRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ21CLEVBQWMsRUFDZCxjQUE4QjtRQUQ5QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBT2pELG9CQUFlLEdBQXFCLE1BQU0sQ0FBQztRQUczQyx1QkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztRQUd4RCxnQ0FBMkIsR0FBNEIsWUFBWSxDQUFDO1FBR3BFLHlCQUFvQixHQUFXLEdBQUcsQ0FBQztJQWZoQyxDQUFDO0lBb0J3QixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtpQkFDdkQsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2lCQUNyQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ3BELE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RFLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OzZHQTVEVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs4SEFRQyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQU1zQixZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVk7Z0JBbUJFLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwQW5jaG9yZWRQb3NpdGlvbiwgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcml2VG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgKSB7fVxuXG4gIEBJbnB1dCgpXG4gIHJpdlRvb2x0aXA/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICByaXZUb29sdGlwVGhlbWU6ICdkYXJrJyB8ICdsaWdodCcgPSAnZGFyayc7XG5cbiAgQElucHV0KClcbiAgcml2VG9vbHRpcE1heFdpZHRoID0gJ2NhbGModmFyKC0tYmFzZS1ncmlkLXNpemUpICogNTApJztcblxuICBASW5wdXQoKVxuICByaXZUb29sdGlwUHJlZmVycmVkUG9zaXRpb246IFRvb2x0aXBBbmNob3JlZFBvc2l0aW9uID0gJ3RvcC1jZW50ZXInO1xuXG4gIEBJbnB1dCgpXG4gIHJpdlRvb2x0aXBDbG9zZURlbGF5OiBudW1iZXIgPSAxMDA7XG5cbiAgcHJpdmF0ZSB0b29sdGlwUmVmPzogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+O1xuICBwcml2YXRlIGNsb3NlVGltZW91dD86IG51bWJlcjtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICghdGhpcy5yaXZUb29sdGlwKSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgdGhpcy5jYW5jZWxDbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5hcHBsaWNhdGlvblJlZi5jb21wb25lbnRzWzBdLmluamVjdG9yXG4gICAgICAgIC5nZXQoVmlld0NvbnRhaW5lclJlZilcbiAgICAgICAgLmNyZWF0ZUNvbXBvbmVudChUb29sdGlwQ29tcG9uZW50KTtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UuYW5jaG9yID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5yaXZUb29sdGlwO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS50aGVtZSA9IHRoaXMucml2VG9vbHRpcFRoZW1lO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5tYXhXaWR0aCA9IHRoaXMucml2VG9vbHRpcE1heFdpZHRoO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5wcmVmZXJyZWRQb3NpdGlvbiA9IHRoaXMucml2VG9vbHRpcFByZWZlcnJlZFBvc2l0aW9uO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5vbk1vdXNlRW50ZXIuc3Vic2NyaWJlKHRoaXMuY2FuY2VsQ2xvc2UuYmluZCh0aGlzKSk7XG4gICAgICB0b29sdGlwLmluc3RhbmNlLm9uTW91c2VMZWF2ZS5zdWJzY3JpYmUodGhpcy5pbml0aWF0ZUNsb3NlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gdG9vbHRpcDtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaW5pdGlhdGVDbG9zZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWF0ZUNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYXRlQ2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRvb2x0aXBSZWY/LmRlc3Ryb3koKTtcbiAgICAgIHRoaXMudG9vbHRpcFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9LCB0aGlzLnJpdlRvb2x0aXBDbG9zZURlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuY2VsQ2xvc2UoKSB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEyQixnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtoRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ3FCLEVBQWMsRUFDZCxjQUE4QjtRQUQ5QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBT25ELG9CQUFlLEdBQXFCLE1BQU0sQ0FBQztRQUczQyx1QkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztRQUd4RCxnQ0FBMkIsR0FBNEIsWUFBWSxDQUFDO1FBR3BFLHlCQUFvQixHQUFXLEdBQUcsQ0FBQztJQWZoQyxDQUFDO0lBb0J3QixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtpQkFDdkQsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2lCQUNyQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ3BELE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RFLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OzZHQTVEVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs4SEFRQyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQU1zQixZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVk7Z0JBbUJFLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwQW5jaG9yZWRQb3NpdGlvbiwgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcml2VG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICkge31cblxuICBASW5wdXQoKVxuICByaXZUb29sdGlwPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgcml2VG9vbHRpcFRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2RhcmsnO1xuXG4gIEBJbnB1dCgpXG4gIHJpdlRvb2x0aXBNYXhXaWR0aCA9ICdjYWxjKHZhcigtLWJhc2UtZ3JpZC1zaXplKSAqIDUwKSc7XG5cbiAgQElucHV0KClcbiAgcml2VG9vbHRpcFByZWZlcnJlZFBvc2l0aW9uOiBUb29sdGlwQW5jaG9yZWRQb3NpdGlvbiA9ICd0b3AtY2VudGVyJztcblxuICBASW5wdXQoKVxuICByaXZUb29sdGlwQ2xvc2VEZWxheTogbnVtYmVyID0gMTAwO1xuXG4gIHByaXZhdGUgdG9vbHRpcFJlZj86IENvbXBvbmVudFJlZjxUb29sdGlwQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBjbG9zZVRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uTW91c2VFbnRlcigpIHtcbiAgICBpZiAoIXRoaXMucml2VG9vbHRpcCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdG9vbHRpcCA9IHRoaXMuYXBwbGljYXRpb25SZWYuY29tcG9uZW50c1swXS5pbmplY3RvclxuICAgICAgICAuZ2V0KFZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIC5jcmVhdGVDb21wb25lbnQoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgICB0b29sdGlwLmluc3RhbmNlLmFuY2hvciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UuY29udGVudCA9IHRoaXMucml2VG9vbHRpcDtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UudGhlbWUgPSB0aGlzLnJpdlRvb2x0aXBUaGVtZTtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UubWF4V2lkdGggPSB0aGlzLnJpdlRvb2x0aXBNYXhXaWR0aDtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UucHJlZmVycmVkUG9zaXRpb24gPSB0aGlzLnJpdlRvb2x0aXBQcmVmZXJyZWRQb3NpdGlvbjtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2Uub25Nb3VzZUVudGVyLnN1YnNjcmliZSh0aGlzLmNhbmNlbENsb3NlLmJpbmQodGhpcykpO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5vbk1vdXNlTGVhdmUuc3Vic2NyaWJlKHRoaXMuaW5pdGlhdGVDbG9zZS5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMudG9vbHRpcFJlZiA9IHRvb2x0aXA7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmluaXRpYXRlQ2xvc2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhdGVDbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWF0ZUNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50b29sdGlwUmVmPy5kZXN0cm95KCk7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYgPSB1bmRlZmluZWQ7XG4gICAgfSwgdGhpcy5yaXZUb29sdGlwQ2xvc2VEZWxheSk7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbENsb3NlKCkge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpO1xuICB9XG59XG4iXX0=
@@ -7,6 +7,8 @@ import { DollarsPipe } from './format/pipes/dollars.pipe';
7
7
  import { NumberPipe } from './format/pipes/number.pipe';
8
8
  import { PercentagePipe } from './format/pipes/percentage.pipe';
9
9
  import { SmallCurrencyPipe } from './format/pipes/small-currency.pipe';
10
+ import { SVGTextTruncateDirective } from './format/svg-text-truncate/svg-text-truncate.directive';
11
+ import { TruncateComponent } from './format/truncate/truncate.component';
10
12
  import { IconComponent } from './icon/icon.component';
11
13
  import { ButtonComponent } from './input/button/button.component';
12
14
  import { CalendarComponent } from './input/calendar/calendar.component';
@@ -72,11 +74,13 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
72
74
  SmallCurrencyPipe,
73
75
  StackedColumnComponent,
74
76
  StackedRowComponent,
77
+ SVGTextTruncateDirective,
75
78
  TextToggleComponent,
76
79
  TimeSeriesComponent,
77
80
  TooltipComponent,
78
81
  TooltipDirective,
79
82
  TrendComponent,
83
+ TruncateComponent,
80
84
  ZeroStateComponent], imports: [CommonModule], exports: [ButtonComponent,
81
85
  CalloutComponent,
82
86
  CalloutDirective,
@@ -107,11 +111,13 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
107
111
  SmallCurrencyPipe,
108
112
  StackedColumnComponent,
109
113
  StackedRowComponent,
114
+ SVGTextTruncateDirective,
110
115
  TextToggleComponent,
111
116
  TimeSeriesComponent,
112
117
  TooltipComponent,
113
118
  TooltipDirective,
114
119
  TrendComponent,
120
+ TruncateComponent,
115
121
  ZeroStateComponent] });
116
122
  RivModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RivModule, imports: [CommonModule] });
117
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RivModule, decorators: [{
@@ -149,11 +155,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
149
155
  SmallCurrencyPipe,
150
156
  StackedColumnComponent,
151
157
  StackedRowComponent,
158
+ SVGTextTruncateDirective,
152
159
  TextToggleComponent,
153
160
  TimeSeriesComponent,
154
161
  TooltipComponent,
155
162
  TooltipDirective,
156
163
  TrendComponent,
164
+ TruncateComponent,
157
165
  ZeroStateComponent,
158
166
  ],
159
167
  exports: [
@@ -187,14 +195,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
187
195
  SmallCurrencyPipe,
188
196
  StackedColumnComponent,
189
197
  StackedRowComponent,
198
+ SVGTextTruncateDirective,
190
199
  TextToggleComponent,
191
200
  TimeSeriesComponent,
192
201
  TooltipComponent,
193
202
  TooltipDirective,
194
203
  TrendComponent,
204
+ TruncateComponent,
195
205
  ZeroStateComponent,
196
206
  ],
197
207
  imports: [CommonModule],
198
208
  }]
199
209
  }] });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdC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QUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdGV4dC10b2dnbGUvdGV4dC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZGF0ZS5waXBlJztcbmltcG9ydCB7IERheXNQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZGF5cy5waXBlJztcbmltcG9ydCB7IERvbGxhcnNQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZG9sbGFycy5waXBlJztcbmltcG9ydCB7IE51bWJlclBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9udW1iZXIucGlwZSc7XG5pbXBvcnQgeyBQZXJjZW50YWdlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3BlcmNlbnRhZ2UucGlwZSc7XG5pbXBvcnQgeyBTbWFsbEN1cnJlbmN5UGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NtYWxsLWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0L2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2RhdGUvZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2luZ2xlLXNlbGVjdC9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ292ZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWQvbG9hZGluZy1jb3Zlci9sb2FkaW5nLWNvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsbG91dE91dGxldENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwvY2FsbG91dC9jYWxsb3V0LW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsbG91dENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwvY2FsbG91dC9jYWxsb3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxsb3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC9jYWxsb3V0L2NhbGxvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhlbHBDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL2hlbHAvaGVscC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvbnV0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RvbnV0L2RvbnV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGdW5uZWxDaGFydENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9mdW5uZWwtY2hhcnQvZnVubmVsLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFN0YWNrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc3RhY2tlZC1jb2x1bW4vc3RhY2tlZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFN0YWNrZWRSb3dDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc3RhY2tlZC1yb3cvc3RhY2tlZC1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVTZXJpZXNDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vdGltZS1zZXJpZXMvdGltZS1zZXJpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZW5kQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RyZW5kL3RyZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZXJvU3RhdGVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vemVyby1zdGF0ZS96ZXJvLXN0YXRlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBDYWxsb3V0Q29tcG9uZW50LFxuICAgIENhbGxvdXREaXJlY3RpdmUsXG4gICAgQ2FsbG91dE91dGxldENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBEYXRlQ29tcG9uZW50LFxuICAgIERhdGVQaXBlLFxuICAgIERhdGVSYW5nZUNvbXBvbmVudCxcbiAgICBEYXlzUGlwZSxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBGdW5uZWxDaGFydENvbXBvbmVudCxcbiAgICBIZWxwQ29tcG9uZW50LFxuICAgIEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIElucHV0TGFiZWxDb21wb25lbnQsXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBMaW5rQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvdmVyQ29tcG9uZW50LFxuICAgIE1ldHJpY0NvbXBvbmVudCxcbiAgICBOdW1iZXJQaXBlLFxuICAgIFBlcmNlbnRhZ2VQaXBlLFxuICAgIFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICBTbWFsbEN1cnJlbmN5UGlwZSxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFN0YWNrZWRSb3dDb21wb25lbnQsXG4gICAgVGV4dFRvZ2dsZUNvbXBvbmVudCxcbiAgICBUaW1lU2VyaWVzQ29tcG9uZW50LFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBUcmVuZENvbXBvbmVudCxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYWxsb3V0RGlyZWN0aXZlLFxuICAgIENhbGxvdXRPdXRsZXRDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVSb3dDb21wb25lbnQsXG4gICAgRGF0ZUNvbXBvbmVudCxcbiAgICBEYXRlUGlwZSxcbiAgICBEYXRlUmFuZ2VDb21wb25lbnQsXG4gICAgRGF5c1BpcGUsXG4gICAgRG9sbGFyc1BpcGUsXG4gICAgRG9udXRDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBTaW5nbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU21hbGxDdXJyZW5jeVBpcGUsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFRleHRUb2dnbGVDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUml2TW9kdWxlIHt9XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFC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a0JBQWtCO3dCQUNsQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixRQUFRO3dCQUNSLGtCQUFrQjt3QkFDbEIsUUFBUTt3QkFDUixXQUFXO3dCQUNYLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdGV4dC10b2dnbGUvdGV4dC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZGF0ZS5waXBlJztcbmltcG9ydCB7IERheXNQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZGF5cy5waXBlJztcbmltcG9ydCB7IERvbGxhcnNQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvZG9sbGFycy5waXBlJztcbmltcG9ydCB7IE51bWJlclBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9udW1iZXIucGlwZSc7XG5pbXBvcnQgeyBQZXJjZW50YWdlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3BlcmNlbnRhZ2UucGlwZSc7XG5pbXBvcnQgeyBTbWFsbEN1cnJlbmN5UGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NtYWxsLWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtYXQvc3ZnLXRleHQtdHJ1bmNhdGUvc3ZnLXRleHQtdHJ1bmNhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRydW5jYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVSYW5nZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9kYXRlL2RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LWxhYmVsL2lucHV0LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGxvdXRPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL2NhbGxvdXQvY2FsbG91dC1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGxvdXRDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsbG91dERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwvY2FsbG91dC9jYWxsb3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIZWxwQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC9oZWxwL2hlbHAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb251dENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kb251dC9kb251dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVubmVsQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZnVubmVsLWNoYXJ0L2Z1bm5lbC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IExlZ2VuZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1ldHJpY0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9tZXRyaWMvbWV0cmljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtY29sdW1uL3N0YWNrZWQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkUm93Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtcm93L3N0YWNrZWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RpbWUtc2VyaWVzL3RpbWUtc2VyaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVuZENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi90cmVuZC90cmVuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVyb1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYWxsb3V0RGlyZWN0aXZlLFxuICAgIENhbGxvdXRPdXRsZXRDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVSb3dDb21wb25lbnQsXG4gICAgRGF0ZUNvbXBvbmVudCxcbiAgICBEYXRlUGlwZSxcbiAgICBEYXRlUmFuZ2VDb21wb25lbnQsXG4gICAgRGF5c1BpcGUsXG4gICAgRG9sbGFyc1BpcGUsXG4gICAgRG9udXRDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBTaW5nbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU21hbGxDdXJyZW5jeVBpcGUsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFNWR1RleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICBUZXh0VG9nZ2xlQ29tcG9uZW50LFxuICAgIFRpbWVTZXJpZXNDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIFRyZW5kQ29tcG9uZW50LFxuICAgIFRydW5jYXRlQ29tcG9uZW50LFxuICAgIFplcm9TdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYWxsb3V0Q29tcG9uZW50LFxuICAgIENhbGxvdXREaXJlY3RpdmUsXG4gICAgQ2FsbG91dE91dGxldENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBEYXRlQ29tcG9uZW50LFxuICAgIERhdGVQaXBlLFxuICAgIERhdGVSYW5nZUNvbXBvbmVudCxcbiAgICBEYXlzUGlwZSxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBGdW5uZWxDaGFydENvbXBvbmVudCxcbiAgICBIZWxwQ29tcG9uZW50LFxuICAgIEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIElucHV0TGFiZWxDb21wb25lbnQsXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBMaW5rQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvdmVyQ29tcG9uZW50LFxuICAgIE1ldHJpY0NvbXBvbmVudCxcbiAgICBOdW1iZXJQaXBlLFxuICAgIFBlcmNlbnRhZ2VQaXBlLFxuICAgIFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICBTbWFsbEN1cnJlbmN5UGlwZSxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFN0YWNrZWRSb3dDb21wb25lbnQsXG4gICAgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgIFRleHRUb2dnbGVDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVDb21wb25lbnQsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUml2TW9kdWxlIHt9XG4iXX0=
@@ -6,9 +6,7 @@ import * as i2 from "../metric/metric.component";
6
6
  import * as i3 from "../trend/trend.component";
7
7
  export class FunnelChartComponent {
8
8
  constructor() {
9
- this.labels = [];
10
- this.values = [];
11
- this.previousValues = [];
9
+ this.data = [];
12
10
  this.isPreAggregated = false;
13
11
  this.graphHeight = 200;
14
12
  this.graphWidth = 1200;
@@ -19,6 +17,7 @@ export class FunnelChartComponent {
19
17
  this.path = null;
20
18
  this.gapWidth = 0;
21
19
  this.sectionWidth = 0;
20
+ this.allZeroes = true;
22
21
  }
23
22
  ngOnChanges() {
24
23
  this.calcValues();
@@ -28,15 +27,17 @@ export class FunnelChartComponent {
28
27
  }
29
28
  calcValues() {
30
29
  this.aggregatedValues = this.isPreAggregated
31
- ? this.values
32
- : aggregateValues(this.values);
30
+ ? this.data.map(d => d.value)
31
+ : aggregateValues(this.data.map(d => d.value));
32
+ this.allZeroes = Math.max(...this.aggregatedValues) === 0;
33
33
  this.percentageSteps = calcPercentageSteps(this.aggregatedValues);
34
34
  }
35
35
  calcTrends() {
36
- const previousValues = this.isPreAggregated
37
- ? this.previousValues
38
- : aggregateValues(this.previousValues);
39
- const previousPercentageSteps = calcPercentageSteps(previousValues);
36
+ const previousValues = this.data.flatMap(d => d.previousValue !== null ? [d.previousValue] : []);
37
+ const aggregatedValues = this.isPreAggregated
38
+ ? previousValues
39
+ : aggregateValues(previousValues);
40
+ const previousPercentageSteps = calcPercentageSteps(aggregatedValues);
40
41
  this.trends = calcTrends(this.percentageSteps, previousPercentageSteps);
41
42
  }
42
43
  calcSpace() {
@@ -53,15 +54,11 @@ export class FunnelChartComponent {
53
54
  }
54
55
  }
55
56
  FunnelChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FunnelChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- FunnelChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FunnelChartComponent, selector: "riv-funnel", inputs: { labels: "labels", values: "values", previousValues: "previousValues", isPreAggregated: "isPreAggregated", graphHeight: "graphHeight", graphWidth: "graphWidth", showConverted: "showConverted" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"funnel-chart\">\n <div class=\"header\">\n <!-- allocate space for the header -->\n <riv-metric\n class=\"metric-placeholder\"\n [label]=\"labels.length > 0 ? 'placeholder' : ''\"\n value=\"0\"\n ></riv-metric>\n <!-- center each metric over vertical lines -->\n <riv-metric\n *ngFor=\"let value of aggregatedValues; let ix = index\"\n class=\"metric\"\n [label]=\"labels[ix]?.toString() ?? ''\"\n [value]=\"value.toString()\"\n [style.left.px]=\"ix * sectionWidth + ix * gapWidth\"\n ></riv-metric>\n </div>\n\n <div class=\"chart\">\n <ng-container *ngFor=\"let step of percentageSteps; let ix = index\">\n <div class=\"vertical-line\"></div>\n\n <div>\n <div *ngIf=\"showConverted\" class=\"step-info\">\n {{ step }}% converted\n <riv-trend\n *ngIf=\"trends[ix] != null\"\n [label]=\"trends[ix]! + '%'\"\n [value]=\"trends[ix]!\"\n ></riv-trend>\n </div>\n\n <!-- allocate space for the graph -->\n <div\n class=\"graph-placeholder\"\n [style.width.px]=\"sectionWidth\"\n [style.height.px]=\"graphHeight\"\n ></div>\n </div>\n </ng-container>\n\n <div class=\"vertical-line\"></div>\n\n <svg\n *ngIf=\"path\"\n class=\"graph\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"graphWidth\"\n [attr.height]=\"graphHeight\"\n >\n <linearGradient id=\"gradient\">\n <stop stop-color=\"var(--purp-30)\" offset=\"0%\" />\n <stop stop-color=\"var(--brand)\" offset=\"100%\" />\n </linearGradient>\n <path [attr.d]=\"path\" fill=\"url(#gradient)\"></path>\n </svg>\n </div>\n</div>\n", styles: [".funnel-chart{width:-moz-fit-content;width:fit-content}.header{position:relative;margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.metric-placeholder{visibility:hidden}.metric{position:absolute;transform:translate(-50%);top:0;display:flex;flex-direction:column;align-items:center;gap:var(--size-xsmall);white-space:nowrap}.chart{position:relative;display:flex;justify-content:space-between;margin-top:var(--size-medium);margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.step-info{display:flex;gap:var(--size-large);border:var(--border-width) solid var(--border-light-blend);border-radius:var(--size-xsmall);padding:var(--size-medium);width:-moz-fit-content;width:fit-content;align-items:center;color:var(--type-light-low-contrast);margin:var(--size-xsmall)}.vertical-line{width:var(--size-xxsmall);background:var(--surface-light-4);z-index:1}.graph-placeholder{margin-bottom:var(--size-xlarge)}.graph{position:absolute;bottom:var(--size-xlarge)}\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.MetricComponent, selector: "riv-metric", inputs: ["label", "value", "card", "help"] }, { kind: "component", type: i3.TrendComponent, selector: "riv-trend", inputs: ["label", "value", "successCondition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ FunnelChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FunnelChartComponent, selector: "riv-funnel", inputs: { data: "data", isPreAggregated: "isPreAggregated", graphHeight: "graphHeight", graphWidth: "graphWidth", showConverted: "showConverted" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"funnel-chart\">\n <div class=\"header\">\n <!-- allocate space for the header -->\n <riv-metric\n class=\"metric-placeholder\"\n label=\"placeholder\"\n value=\"0\"\n ></riv-metric>\n <!-- center each metric over vertical lines -->\n <riv-metric\n *ngFor=\"let value of aggregatedValues; let ix = index\"\n class=\"metric\"\n [label]=\"data[ix]?.label ?? ''\"\n [value]=\"value.toString()\"\n [style.left.px]=\"ix * sectionWidth + ix * gapWidth\"\n ></riv-metric>\n </div>\n\n <div class=\"chart\">\n <ng-container *ngFor=\"let step of percentageSteps; let ix = index\">\n <div class=\"vertical-line\"></div>\n\n <div>\n <div *ngIf=\"showConverted && !allZeroes\" class=\"step-info\">\n {{ step }}% converted\n <riv-trend\n *ngIf=\"trends[ix] != null\"\n [label]=\"trends[ix]! + '%'\"\n [value]=\"trends[ix]!\"\n ></riv-trend>\n </div>\n\n <!-- allocate space for the graph -->\n <div\n class=\"graph-placeholder\"\n [style.width.px]=\"sectionWidth\"\n [style.height.px]=\"graphHeight\"\n ></div>\n </div>\n </ng-container>\n\n <div class=\"vertical-line\"></div>\n\n <svg\n *ngIf=\"path\"\n class=\"graph\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"graphWidth\"\n [attr.height]=\"graphHeight\"\n >\n <linearGradient id=\"gradient\">\n <stop stop-color=\"var(--purp-30)\" offset=\"0%\" />\n <stop stop-color=\"var(--brand)\" offset=\"100%\" />\n </linearGradient>\n <path [attr.d]=\"path\" fill=\"url(#gradient)\"></path>\n </svg>\n </div>\n</div>\n", styles: [".funnel-chart{width:-moz-fit-content;width:fit-content}.header{position:relative;margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.metric-placeholder{visibility:hidden}.metric{position:absolute;transform:translate(-50%);top:0;display:flex;flex-direction:column;align-items:center;gap:var(--size-xsmall);white-space:nowrap}.chart{position:relative;display:flex;justify-content:space-between;margin-top:var(--size-medium);margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.step-info{display:flex;gap:var(--size-large);border:var(--border-width) solid var(--border-light-blend);border-radius:var(--size-xsmall);padding:var(--size-medium);width:-moz-fit-content;width:fit-content;align-items:center;color:var(--type-light-low-contrast);margin:var(--size-xsmall)}.vertical-line{width:var(--size-xxsmall);background:var(--surface-light-4);z-index:1}.graph-placeholder{margin-bottom:var(--size-xlarge)}.graph{position:absolute;bottom:var(--size-xlarge)}\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.MetricComponent, selector: "riv-metric", inputs: ["label", "value", "card", "help"] }, { kind: "component", type: i3.TrendComponent, selector: "riv-trend", inputs: ["label", "value", "successCondition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FunnelChartComponent, decorators: [{
58
59
  type: Component,
59
- args: [{ selector: 'riv-funnel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"funnel-chart\">\n <div class=\"header\">\n <!-- allocate space for the header -->\n <riv-metric\n class=\"metric-placeholder\"\n [label]=\"labels.length > 0 ? 'placeholder' : ''\"\n value=\"0\"\n ></riv-metric>\n <!-- center each metric over vertical lines -->\n <riv-metric\n *ngFor=\"let value of aggregatedValues; let ix = index\"\n class=\"metric\"\n [label]=\"labels[ix]?.toString() ?? ''\"\n [value]=\"value.toString()\"\n [style.left.px]=\"ix * sectionWidth + ix * gapWidth\"\n ></riv-metric>\n </div>\n\n <div class=\"chart\">\n <ng-container *ngFor=\"let step of percentageSteps; let ix = index\">\n <div class=\"vertical-line\"></div>\n\n <div>\n <div *ngIf=\"showConverted\" class=\"step-info\">\n {{ step }}% converted\n <riv-trend\n *ngIf=\"trends[ix] != null\"\n [label]=\"trends[ix]! + '%'\"\n [value]=\"trends[ix]!\"\n ></riv-trend>\n </div>\n\n <!-- allocate space for the graph -->\n <div\n class=\"graph-placeholder\"\n [style.width.px]=\"sectionWidth\"\n [style.height.px]=\"graphHeight\"\n ></div>\n </div>\n </ng-container>\n\n <div class=\"vertical-line\"></div>\n\n <svg\n *ngIf=\"path\"\n class=\"graph\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"graphWidth\"\n [attr.height]=\"graphHeight\"\n >\n <linearGradient id=\"gradient\">\n <stop stop-color=\"var(--purp-30)\" offset=\"0%\" />\n <stop stop-color=\"var(--brand)\" offset=\"100%\" />\n </linearGradient>\n <path [attr.d]=\"path\" fill=\"url(#gradient)\"></path>\n </svg>\n </div>\n</div>\n", styles: [".funnel-chart{width:-moz-fit-content;width:fit-content}.header{position:relative;margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.metric-placeholder{visibility:hidden}.metric{position:absolute;transform:translate(-50%);top:0;display:flex;flex-direction:column;align-items:center;gap:var(--size-xsmall);white-space:nowrap}.chart{position:relative;display:flex;justify-content:space-between;margin-top:var(--size-medium);margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.step-info{display:flex;gap:var(--size-large);border:var(--border-width) solid var(--border-light-blend);border-radius:var(--size-xsmall);padding:var(--size-medium);width:-moz-fit-content;width:fit-content;align-items:center;color:var(--type-light-low-contrast);margin:var(--size-xsmall)}.vertical-line{width:var(--size-xxsmall);background:var(--surface-light-4);z-index:1}.graph-placeholder{margin-bottom:var(--size-xlarge)}.graph{position:absolute;bottom:var(--size-xlarge)}\n"] }]
60
- }], propDecorators: { labels: [{
61
- type: Input
62
- }], values: [{
63
- type: Input
64
- }], previousValues: [{
60
+ args: [{ selector: 'riv-funnel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"funnel-chart\">\n <div class=\"header\">\n <!-- allocate space for the header -->\n <riv-metric\n class=\"metric-placeholder\"\n label=\"placeholder\"\n value=\"0\"\n ></riv-metric>\n <!-- center each metric over vertical lines -->\n <riv-metric\n *ngFor=\"let value of aggregatedValues; let ix = index\"\n class=\"metric\"\n [label]=\"data[ix]?.label ?? ''\"\n [value]=\"value.toString()\"\n [style.left.px]=\"ix * sectionWidth + ix * gapWidth\"\n ></riv-metric>\n </div>\n\n <div class=\"chart\">\n <ng-container *ngFor=\"let step of percentageSteps; let ix = index\">\n <div class=\"vertical-line\"></div>\n\n <div>\n <div *ngIf=\"showConverted && !allZeroes\" class=\"step-info\">\n {{ step }}% converted\n <riv-trend\n *ngIf=\"trends[ix] != null\"\n [label]=\"trends[ix]! + '%'\"\n [value]=\"trends[ix]!\"\n ></riv-trend>\n </div>\n\n <!-- allocate space for the graph -->\n <div\n class=\"graph-placeholder\"\n [style.width.px]=\"sectionWidth\"\n [style.height.px]=\"graphHeight\"\n ></div>\n </div>\n </ng-container>\n\n <div class=\"vertical-line\"></div>\n\n <svg\n *ngIf=\"path\"\n class=\"graph\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"graphWidth\"\n [attr.height]=\"graphHeight\"\n >\n <linearGradient id=\"gradient\">\n <stop stop-color=\"var(--purp-30)\" offset=\"0%\" />\n <stop stop-color=\"var(--brand)\" offset=\"100%\" />\n </linearGradient>\n <path [attr.d]=\"path\" fill=\"url(#gradient)\"></path>\n </svg>\n </div>\n</div>\n", styles: [".funnel-chart{width:-moz-fit-content;width:fit-content}.header{position:relative;margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.metric-placeholder{visibility:hidden}.metric{position:absolute;transform:translate(-50%);top:0;display:flex;flex-direction:column;align-items:center;gap:var(--size-xsmall);white-space:nowrap}.chart{position:relative;display:flex;justify-content:space-between;margin-top:var(--size-medium);margin-left:var(--size-xlarge);margin-right:var(--size-xlarge)}.step-info{display:flex;gap:var(--size-large);border:var(--border-width) solid var(--border-light-blend);border-radius:var(--size-xsmall);padding:var(--size-medium);width:-moz-fit-content;width:fit-content;align-items:center;color:var(--type-light-low-contrast);margin:var(--size-xsmall)}.vertical-line{width:var(--size-xxsmall);background:var(--surface-light-4);z-index:1}.graph-placeholder{margin-bottom:var(--size-xlarge)}.graph{position:absolute;bottom:var(--size-xlarge)}\n"] }]
61
+ }], propDecorators: { data: [{
65
62
  type: Input
66
63
  }], isPreAggregated: [{
67
64
  type: Input
@@ -78,18 +75,22 @@ export function aggregateValues(values) {
78
75
  export function calcPercentageSteps(values) {
79
76
  return values.flatMap((v, ix) => {
80
77
  const next = values[ix + 1];
81
- return next !== undefined ? [Math.round(100 * (next / v))] : [];
78
+ return next !== undefined
79
+ ? v === 0
80
+ ? 0
81
+ : [Math.round(100 * (next / v))]
82
+ : [];
82
83
  });
83
84
  }
84
85
  export function calcTrends(values, previousValues) {
85
- return values.map((v, ix) => {
86
- const n = previousValues[ix];
87
- return n ? v - n : null;
88
- });
86
+ if (values.length !== previousValues.length) {
87
+ return [];
88
+ }
89
+ return values.map((v, ix) => v - previousValues[ix]);
89
90
  }
90
91
  export function calcPoints(values, sectionWidth, height, gap) {
91
92
  const divisor = Math.max(...values) / height;
92
- const normalizedValues = values.map(v => height - Math.round(v / divisor));
93
+ const normalizedValues = values.map(v => height - (divisor === 0 ? 0 : Math.round(v / divisor)));
93
94
  // plot the points along the top edge of the graph
94
95
  return normalizedValues.slice(1).flatMap((v, ix) => [
95
96
  // top left point of current section
@@ -100,4 +101,4 @@ export function calcPoints(values, sectionWidth, height, gap) {
100
101
  [gap * (ix + 2) + sectionWidth * (ix + 1), v],
101
102
  ]);
102
103
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVubmVsLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Zpc3VhbGl6YXRpb24vZnVubmVsLWNoYXJ0L2Z1bm5lbC1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL2Z1bm5lbC1jaGFydC9mdW5uZWwtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBUWhDLE1BQU0sT0FBTyxvQkFBb0I7SUFOakM7UUFRRSxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBR3RCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFHdEIsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFHOUIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFHakMsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUFHMUIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUcxQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUU5QixxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDaEMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFDL0IsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixpQkFBWSxHQUFXLENBQUMsQ0FBQztLQWlEMUI7SUEvQ0MsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxV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RyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsd0NBQXdDO1FBQ3hDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsbUZBQW1GO1FBQ25GLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXJlYSB9IGZyb20gJ2QzLXNoYXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWZ1bm5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mdW5uZWwtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mdW5uZWwtY2hhcnQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnVubmVsQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBsYWJlbHM6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgdmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHByZXZpb3VzVmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGlzUHJlQWdncmVnYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdyYXBoSGVpZ2h0OiBudW1iZXIgPSAyMDA7XG5cbiAgQElucHV0KClcbiAgZ3JhcGhXaWR0aDogbnVtYmVyID0gMTIwMDtcblxuICBASW5wdXQoKVxuICBzaG93Q29udmVydGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBhZ2dyZWdhdGVkVmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuICBwZXJjZW50YWdlU3RlcHM6IG51bWJlcltdID0gW107XG4gIHRyZW5kczogKG51bWJlciB8IG51bGwpW10gPSBbXTtcbiAgcGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGdhcFdpZHRoOiBudW1iZXIgPSAwO1xuICBzZWN0aW9uV2lkdGg6IG51bWJlciA9IDA7XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5jYWxjVmFsdWVzKCk7XG4gICAgdGhpcy5jYWxjVHJlbmRzKCk7XG4gICAgdGhpcy5jYWxjU3BhY2UoKTtcbiAgICB0aGlzLmNyZWF0ZVBhdGgoKTtcbiAgfVxuXG4gIGNhbGNWYWx1ZXMoKSB7XG4gICAgdGhpcy5hZ2dyZWdhdGVkVmFsdWVzID0gdGhpcy5pc1ByZUFnZ3JlZ2F0ZWRcbiAgICAgID8gdGhpcy52YWx1ZXNcbiAgICAgIDogYWdncmVnYXRlVmFsdWVzKHRoaXMudmFsdWVzKTtcblxuICAgIHRoaXMucGVyY2VudGFnZVN0ZXBzID0gY2FsY1BlcmNlbnRhZ2VTdGVwcyh0aGlzLmFnZ3JlZ2F0ZWRWYWx1ZXMpO1xuICB9XG5cbiAgY2FsY1RyZW5kcygpIHtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlcyA9IHRoaXMuaXNQcmVBZ2dyZWdhdGVkXG4gICAgICA/IHRoaXMucHJldmlvdXNWYWx1ZXNcbiAgICAgIDogYWdncmVnYXRlVmFsdWVzKHRoaXMucHJldmlvdXNWYWx1ZXMpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQZXJjZW50YWdlU3RlcHMgPSBjYWxjUGVyY2VudGFnZVN0ZXBzKHByZXZpb3VzVmFsdWVzKTtcblxuICAgIHRoaXMudHJlbmRzID0gY2FsY1RyZW5kcyh0aGlzLnBlcmNlbnRhZ2VTdGVwcywgcHJldmlvdXNQZXJjZW50YWdlU3RlcHMpO1xuICB9XG5cbiAgY2FsY1NwYWNlKCkge1xuICAgIHRoaXMuZ2FwV2lkdGggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmVydGljYWwtbGluZScpPy5jbGllbnRXaWR0aCA/PyAyO1xuICAgIGNvbnN0IHRvdGFsR2FwU3BhY2UgPSB0aGlzLnBlcmNlbnRhZ2VTdGVwcy5sZW5ndGggKiB0aGlzLmdhcFdpZHRoO1xuXG4gICAgdGhpcy5zZWN0aW9uV2lkdGggPSBNYXRoLnJvdW5kKFxuICAgICAgKHRoaXMuZ3JhcGhXaWR0aCAtIHRvdGFsR2FwU3BhY2UpIC8gKHRoaXMucGVyY2VudGFnZVN0ZXBzLmxlbmd0aCB8fCAxKSxcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlUGF0aCgpIHtcbiAgICBjb25zdCBwb2ludHMgPSBjYWxjUG9pbnRzKFxuICAgICAgdGhpcy5hZ2dyZWdhdGVkVmFsdWVzLFxuICAgICAgdGhpcy5zZWN0aW9uV2lkdGgsXG4gICAgICB0aGlzLmdyYXBoSGVpZ2h0LFxuICAgICAgdGhpcy5nYXBXaWR0aCxcbiAgICApO1xuXG4gICAgdGhpcy5wYXRoID0gYXJlYSgpXG4gICAgICAueCgoW3gsIF9dKSA9PiB4KVxuICAgICAgLnkxKChbXywgeV0pID0+IHkpXG4gICAgICAueTAodGhpcy5ncmFwaEhlaWdodCkocG9pbnRzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWdncmVnYXRlVmFsdWVzKHZhbHVlczogbnVtYmVyW10pOiBudW1iZXJbXSB7XG4gIHJldHVybiB2YWx1ZXMubWFwKFxuICAgICh2LCBpeCkgPT4gdiArIHZhbHVlcy5zbGljZShpeCArIDEpLnJlZHVjZSgoYWNjLCBuKSA9PiBhY2MgKyBuLCAwKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGNQZXJjZW50YWdlU3RlcHModmFsdWVzOiBudW1iZXJbXSk6IG51bWJlcltdIHtcbiAgcmV0dXJuIHZhbHVlcy5mbGF0TWFwKCh2LCBpeCkgPT4ge1xuICAgIGNvbnN0IG5leHQgPSB2YWx1ZXNbaXggKyAxXTtcbiAgICByZXR1cm4gbmV4dCAhPT0gdW5kZWZpbmVkID8gW01hdGgucm91bmQoMTAwICogKG5leHQgLyB2KSldIDogW107XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY1RyZW5kcyhcbiAgdmFsdWVzOiBudW1iZXJbXSxcbiAgcHJldmlvdXNWYWx1ZXM6IG51bWJlcltdLFxuKTogKG51bWJlciB8IG51bGwpW10ge1xuICByZXR1cm4gdmFsdWVzLm1hcCgodiwgaXgpID0+IHtcbiAgICBjb25zdCBuID0gcHJldmlvdXNWYWx1ZXNbaXhdO1xuICAgIHJldHVybiBuID8gdiAtIG4gOiBudWxsO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGNQb2ludHMoXG4gIHZhbHVlczogbnVtYmVyW10sXG4gIHNlY3Rpb25XaWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlcixcbiAgZ2FwOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdW10ge1xuICBjb25zdCBkaXZpc29yID0gTWF0aC5tYXgoLi4udmFsdWVzKSAvIGhlaWdodDtcbiAgY29uc3Qgbm9ybWFsaXplZFZhbHVlcyA9IHZhbHVlcy5tYXAodiA9PiBoZWlnaHQgLSBNYXRoLnJvdW5kKHYgLyBkaXZpc29yKSk7XG5cbiAgLy8gcGxvdCB0aGUgcG9pbnRzIGFsb25nIHRoZSB0b3AgZWRnZSBvZiB0aGUgZ3JhcGhcbiAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZXMuc2xpY2UoMSkuZmxhdE1hcCgodiwgaXgpID0+IFtcbiAgICAvLyB0b3AgbGVmdCBwb2ludCBvZiBjdXJyZW50IHNlY3Rpb25cbiAgICBbZ2FwICogKGl4ICsgMSkgKyBzZWN0aW9uV2lkdGggKiBpeCwgbm9ybWFsaXplZFZhbHVlc1tpeF1dLFxuICAgIC8vIGJvdHRvbSByaWdodCBwb2ludCBvZiBjdXJyZW50IHNlY3Rpb25cbiAgICBbZ2FwICogKGl4ICsgMSkgKyBzZWN0aW9uV2lkdGggKiAoaXggKyAxKSwgdl0sXG4gICAgLy8gdG9wIGxlZnQgcG9pbnQgb2YgbmV4dCBzZWN0aW9uLCByZXF1aXJlZCBmb3Igc21hbGwgc2VjdGlvbnMgdW5kZXIgdmVydGljYWwgbGluZXNcbiAgICBbZ2FwICogKGl4ICsgMikgKyBzZWN0aW9uV2lkdGggKiAoaXggKyAxKSwgdl0sXG4gIF0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImZ1bm5lbC1jaGFydFwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPCEtLSBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGhlYWRlciAtLT5cbiAgICA8cml2LW1ldHJpY1xuICAgICAgY2xhc3M9XCJtZXRyaWMtcGxhY2Vob2xkZXJcIlxuICAgICAgW2xhYmVsXT1cImxhYmVscy5sZW5ndGggPiAwID8gJ3BsYWNlaG9sZGVyJyA6ICcnXCJcbiAgICAgIHZhbHVlPVwiMFwiXG4gICAgPjwvcml2LW1ldHJpYz5cbiAgICA8IS0tIGNlbnRlciBlYWNoIG1ldHJpYyBvdmVyIHZlcnRpY2FsIGxpbmVzIC0tPlxuICAgIDxyaXYtbWV0cmljXG4gICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgYWdncmVnYXRlZFZhbHVlczsgbGV0IGl4ID0gaW5kZXhcIlxuICAgICAgY2xhc3M9XCJtZXRyaWNcIlxuICAgICAgW2xhYmVsXT1cImxhYmVsc1tpeF0/LnRvU3RyaW5nKCkgPz8gJydcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlLnRvU3RyaW5nKClcIlxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiaXggKiBzZWN0aW9uV2lkdGggKyBpeCAqIGdhcFdpZHRoXCJcbiAgICA+PC9yaXYtbWV0cmljPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2hhcnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIHBlcmNlbnRhZ2VTdGVwczsgbGV0IGl4ID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1saW5lXCI+PC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q29udmVydGVkXCIgY2xhc3M9XCJzdGVwLWluZm9cIj5cbiAgICAgICAgICB7eyBzdGVwIH19JSBjb252ZXJ0ZWRcbiAgICAgICAgICA8cml2LXRyZW5kXG4gICAgICAgICAgICAqbmdJZj1cInRyZW5kc1tpeF0gIT0gbnVsbFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwidHJlbmRzW2l4XSEgKyAnJSdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInRyZW5kc1tpeF0hXCJcbiAgICAgICAgICA+PC9yaXYtdHJlbmQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBncmFwaCAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZ3JhcGgtcGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzZWN0aW9uV2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ3JhcGhIZWlnaHRcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1saW5lXCI+PC9kaXY+XG5cbiAgICA8c3ZnXG4gICAgICAqbmdJZj1cInBhdGhcIlxuICAgICAgY2xhc3M9XCJncmFwaFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIFthdHRyLndpZHRoXT1cImdyYXBoV2lkdGhcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cImdyYXBoSGVpZ2h0XCJcbiAgICA+XG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJncmFkaWVudFwiPlxuICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwidmFyKC0tcHVycC0zMClcIiBvZmZzZXQ9XCIwJVwiIC8+XG4gICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCJ2YXIoLS1icmFuZClcIiBvZmZzZXQ9XCIxMDAlXCIgLz5cbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICA8cGF0aCBbYXR0ci5kXT1cInBhdGhcIiBmaWxsPVwidXJsKCNncmFkaWVudClcIj48L3BhdGg+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVubmVsLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Zpc3VhbGl6YXRpb24vZnVubmVsLWNoYXJ0L2Z1bm5lbC1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL2Z1bm5lbC1jaGFydC9mdW5uZWwtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBY2hDLE1BQU0sT0FBTyxvQkFBb0I7SUFOakM7UUFRRSxTQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUc3QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUdqQyxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUcxQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBRzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRTlCLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMvQixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQzNCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsY0FBUyxHQUFZLElBQUksQ0FBQztLQXVEM0I7SUFyREMsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNDLENBQUMsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsRCxDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUMzQyxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQzNFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM1QixDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFO2FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pCLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7aUhBNUVVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDJOQ3BCakMscXREQTBEQTsyRkR0Q2Esb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsSUFBSTtzQkFESCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSzs7QUFrRVIsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFnQjtJQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQ2YsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBZ0I7SUFDbEQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLEtBQUssU0FBUztZQUN2QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBZ0IsRUFDaEIsY0FBd0I7SUFFeEIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsTUFBYyxFQUNkLEdBQVc7SUFFWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzdDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDakMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQzVELENBQUM7SUFFRixrREFBa0Q7SUFDbEQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEQsb0NBQW9DO1FBQ3BDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsd0NBQXdDO1FBQ3hDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsbUZBQW1GO1FBQ25GLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXJlYSB9IGZyb20gJ2QzLXNoYXBlJztcblxuZXhwb3J0IHR5cGUgRnVubmVsQ2hhcnREYXRhID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBwcmV2aW91c1ZhbHVlOiBudW1iZXIgfCBudWxsO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWZ1bm5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mdW5uZWwtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mdW5uZWwtY2hhcnQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnVubmVsQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBkYXRhOiBGdW5uZWxDaGFydERhdGFbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGlzUHJlQWdncmVnYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdyYXBoSGVpZ2h0OiBudW1iZXIgPSAyMDA7XG5cbiAgQElucHV0KClcbiAgZ3JhcGhXaWR0aDogbnVtYmVyID0gMTIwMDtcblxuICBASW5wdXQoKVxuICBzaG93Q29udmVydGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBhZ2dyZWdhdGVkVmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuICBwZXJjZW50YWdlU3RlcHM6IG51bWJlcltdID0gW107XG4gIHRyZW5kczogbnVtYmVyW10gPSBbXTtcbiAgcGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGdhcFdpZHRoOiBudW1iZXIgPSAwO1xuICBzZWN0aW9uV2lkdGg6IG51bWJlciA9IDA7XG4gIGFsbFplcm9lczogYm9vbGVhbiA9IHRydWU7XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5jYWxjVmFsdWVzKCk7XG4gICAgdGhpcy5jYWxjVHJlbmRzKCk7XG4gICAgdGhpcy5jYWxjU3BhY2UoKTtcbiAgICB0aGlzLmNyZWF0ZVBhdGgoKTtcbiAgfVxuXG4gIGNhbGNWYWx1ZXMoKSB7XG4gICAgdGhpcy5hZ2dyZWdhdGVkVmFsdWVzID0gdGhpcy5pc1ByZUFnZ3JlZ2F0ZWRcbiAgICAgID8gdGhpcy5kYXRhLm1hcChkID0+IGQudmFsdWUpXG4gICAgICA6IGFnZ3JlZ2F0ZVZhbHVlcyh0aGlzLmRhdGEubWFwKGQgPT4gZC52YWx1ZSkpO1xuXG4gICAgdGhpcy5hbGxaZXJvZXMgPSBNYXRoLm1heCguLi50aGlzLmFnZ3JlZ2F0ZWRWYWx1ZXMpID09PSAwO1xuXG4gICAgdGhpcy5wZXJjZW50YWdlU3RlcHMgPSBjYWxjUGVyY2VudGFnZVN0ZXBzKHRoaXMuYWdncmVnYXRlZFZhbHVlcyk7XG4gIH1cblxuICBjYWxjVHJlbmRzKCkge1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWVzID0gdGhpcy5kYXRhLmZsYXRNYXAoZCA9PlxuICAgICAgZC5wcmV2aW91c1ZhbHVlICE9PSBudWxsID8gW2QucHJldmlvdXNWYWx1ZV0gOiBbXSxcbiAgICApO1xuXG4gICAgY29uc3QgYWdncmVnYXRlZFZhbHVlcyA9IHRoaXMuaXNQcmVBZ2dyZWdhdGVkXG4gICAgICA/IHByZXZpb3VzVmFsdWVzXG4gICAgICA6IGFnZ3JlZ2F0ZVZhbHVlcyhwcmV2aW91c1ZhbHVlcyk7XG5cbiAgICBjb25zdCBwcmV2aW91c1BlcmNlbnRhZ2VTdGVwcyA9IGNhbGNQZXJjZW50YWdlU3RlcHMoYWdncmVnYXRlZFZhbHVlcyk7XG5cbiAgICB0aGlzLnRyZW5kcyA9IGNhbGNUcmVuZHModGhpcy5wZXJjZW50YWdlU3RlcHMsIHByZXZpb3VzUGVyY2VudGFnZVN0ZXBzKTtcbiAgfVxuXG4gIGNhbGNTcGFjZSgpIHtcbiAgICB0aGlzLmdhcFdpZHRoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnZlcnRpY2FsLWxpbmUnKT8uY2xpZW50V2lkdGggPz8gMjtcbiAgICBjb25zdCB0b3RhbEdhcFNwYWNlID0gdGhpcy5wZXJjZW50YWdlU3RlcHMubGVuZ3RoICogdGhpcy5nYXBXaWR0aDtcblxuICAgIHRoaXMuc2VjdGlvbldpZHRoID0gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLmdyYXBoV2lkdGggLSB0b3RhbEdhcFNwYWNlKSAvICh0aGlzLnBlcmNlbnRhZ2VTdGVwcy5sZW5ndGggfHwgMSksXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZVBhdGgoKSB7XG4gICAgY29uc3QgcG9pbnRzID0gY2FsY1BvaW50cyhcbiAgICAgIHRoaXMuYWdncmVnYXRlZFZhbHVlcyxcbiAgICAgIHRoaXMuc2VjdGlvbldpZHRoLFxuICAgICAgdGhpcy5ncmFwaEhlaWdodCxcbiAgICAgIHRoaXMuZ2FwV2lkdGgsXG4gICAgKTtcblxuICAgIHRoaXMucGF0aCA9IGFyZWEoKVxuICAgICAgLngoKFt4LCBfXSkgPT4geClcbiAgICAgIC55MSgoW18sIHldKSA9PiB5KVxuICAgICAgLnkwKHRoaXMuZ3JhcGhIZWlnaHQpKHBvaW50cyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZVZhbHVlcyh2YWx1ZXM6IG51bWJlcltdKTogbnVtYmVyW10ge1xuICByZXR1cm4gdmFsdWVzLm1hcChcbiAgICAodiwgaXgpID0+IHYgKyB2YWx1ZXMuc2xpY2UoaXggKyAxKS5yZWR1Y2UoKGFjYywgbikgPT4gYWNjICsgbiwgMCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjUGVyY2VudGFnZVN0ZXBzKHZhbHVlczogbnVtYmVyW10pOiBudW1iZXJbXSB7XG4gIHJldHVybiB2YWx1ZXMuZmxhdE1hcCgodiwgaXgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gdmFsdWVzW2l4ICsgMV07XG4gICAgcmV0dXJuIG5leHQgIT09IHVuZGVmaW5lZFxuICAgICAgPyB2ID09PSAwXG4gICAgICAgID8gMFxuICAgICAgICA6IFtNYXRoLnJvdW5kKDEwMCAqIChuZXh0IC8gdikpXVxuICAgICAgOiBbXTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjVHJlbmRzKFxuICB2YWx1ZXM6IG51bWJlcltdLFxuICBwcmV2aW91c1ZhbHVlczogbnVtYmVyW10sXG4pOiBudW1iZXJbXSB7XG4gIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBwcmV2aW91c1ZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIHZhbHVlcy5tYXAoKHYsIGl4KSA9PiB2IC0gcHJldmlvdXNWYWx1ZXNbaXhdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGNQb2ludHMoXG4gIHZhbHVlczogbnVtYmVyW10sXG4gIHNlY3Rpb25XaWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlcixcbiAgZ2FwOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdW10ge1xuICBjb25zdCBkaXZpc29yID0gTWF0aC5tYXgoLi4udmFsdWVzKSAvIGhlaWdodDtcbiAgY29uc3Qgbm9ybWFsaXplZFZhbHVlcyA9IHZhbHVlcy5tYXAoXG4gICAgdiA9PiBoZWlnaHQgLSAoZGl2aXNvciA9PT0gMCA/IDAgOiBNYXRoLnJvdW5kKHYgLyBkaXZpc29yKSksXG4gICk7XG5cbiAgLy8gcGxvdCB0aGUgcG9pbnRzIGFsb25nIHRoZSB0b3AgZWRnZSBvZiB0aGUgZ3JhcGhcbiAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZXMuc2xpY2UoMSkuZmxhdE1hcCgodiwgaXgpID0+IFtcbiAgICAvLyB0b3AgbGVmdCBwb2ludCBvZiBjdXJyZW50IHNlY3Rpb25cbiAgICBbZ2FwICogKGl4ICsgMSkgKyBzZWN0aW9uV2lkdGggKiBpeCwgbm9ybWFsaXplZFZhbHVlc1tpeF1dLFxuICAgIC8vIGJvdHRvbSByaWdodCBwb2ludCBvZiBjdXJyZW50IHNlY3Rpb25cbiAgICBbZ2FwICogKGl4ICsgMSkgKyBzZWN0aW9uV2lkdGggKiAoaXggKyAxKSwgdl0sXG4gICAgLy8gdG9wIGxlZnQgcG9pbnQgb2YgbmV4dCBzZWN0aW9uLCByZXF1aXJlZCBmb3Igc21hbGwgc2VjdGlvbnMgdW5kZXIgdmVydGljYWwgbGluZXNcbiAgICBbZ2FwICogKGl4ICsgMikgKyBzZWN0aW9uV2lkdGggKiAoaXggKyAxKSwgdl0sXG4gIF0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImZ1bm5lbC1jaGFydFwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPCEtLSBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGhlYWRlciAtLT5cbiAgICA8cml2LW1ldHJpY1xuICAgICAgY2xhc3M9XCJtZXRyaWMtcGxhY2Vob2xkZXJcIlxuICAgICAgbGFiZWw9XCJwbGFjZWhvbGRlclwiXG4gICAgICB2YWx1ZT1cIjBcIlxuICAgID48L3Jpdi1tZXRyaWM+XG4gICAgPCEtLSBjZW50ZXIgZWFjaCBtZXRyaWMgb3ZlciB2ZXJ0aWNhbCBsaW5lcyAtLT5cbiAgICA8cml2LW1ldHJpY1xuICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGFnZ3JlZ2F0ZWRWYWx1ZXM7IGxldCBpeCA9IGluZGV4XCJcbiAgICAgIGNsYXNzPVwibWV0cmljXCJcbiAgICAgIFtsYWJlbF09XCJkYXRhW2l4XT8ubGFiZWwgPz8gJydcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlLnRvU3RyaW5nKClcIlxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiaXggKiBzZWN0aW9uV2lkdGggKyBpeCAqIGdhcFdpZHRoXCJcbiAgICA+PC9yaXYtbWV0cmljPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2hhcnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIHBlcmNlbnRhZ2VTdGVwczsgbGV0IGl4ID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1saW5lXCI+PC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q29udmVydGVkICYmICFhbGxaZXJvZXNcIiBjbGFzcz1cInN0ZXAtaW5mb1wiPlxuICAgICAgICAgIHt7IHN0ZXAgfX0lIGNvbnZlcnRlZFxuICAgICAgICAgIDxyaXYtdHJlbmRcbiAgICAgICAgICAgICpuZ0lmPVwidHJlbmRzW2l4XSAhPSBudWxsXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJ0cmVuZHNbaXhdISArICclJ1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwidHJlbmRzW2l4XSFcIlxuICAgICAgICAgID48L3Jpdi10cmVuZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGdyYXBoIC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJncmFwaC1wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNlY3Rpb25XaWR0aFwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJncmFwaEhlaWdodFwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWxpbmVcIj48L2Rpdj5cblxuICAgIDxzdmdcbiAgICAgICpuZ0lmPVwicGF0aFwiXG4gICAgICBjbGFzcz1cImdyYXBoXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgW2F0dHIud2lkdGhdPVwiZ3JhcGhXaWR0aFwiXG4gICAgICBbYXR0ci5oZWlnaHRdPVwiZ3JhcGhIZWlnaHRcIlxuICAgID5cbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImdyYWRpZW50XCI+XG4gICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCJ2YXIoLS1wdXJwLTMwKVwiIG9mZnNldD1cIjAlXCIgLz5cbiAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cInZhcigtLWJyYW5kKVwiIG9mZnNldD1cIjEwMCVcIiAvPlxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgIDxwYXRoIFthdHRyLmRdPVwicGF0aFwiIGZpbGw9XCJ1cmwoI2dyYWRpZW50KVwiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==