@rivet-health/design-system 2.3.1 → 2.5.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.
- package/esm2020/lib/format/pipes/days.pipe.mjs +19 -0
- package/esm2020/lib/format/pipes/number.pipe.mjs +18 -0
- package/esm2020/lib/format/pipes/percentage.pipe.mjs +18 -0
- package/esm2020/lib/format/pipes/small-currency.pipe.mjs +35 -0
- package/esm2020/lib/modal/tooltip/tooltip.component.mjs +45 -0
- package/esm2020/lib/modal/tooltip/tooltip.directive.mjs +62 -0
- package/esm2020/lib/riv.module.mjs +39 -9
- package/esm2020/lib/visualization/donut/donut.component.mjs +7 -4
- package/esm2020/lib/visualization/legend-item/legend-item.component.mjs +6 -3
- package/esm2020/lib/visualization/time-series/time-series.component.mjs +1 -1
- package/esm2020/public-api.mjs +7 -1
- package/fesm2015/rivet-health-design-system.mjs +552 -342
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +565 -359
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/format/pipes/days.pipe.d.ts +8 -0
- package/lib/format/pipes/number.pipe.d.ts +8 -0
- package/lib/format/pipes/percentage.pipe.d.ts +8 -0
- package/lib/format/pipes/small-currency.pipe.d.ts +8 -0
- package/lib/modal/tooltip/tooltip.component.d.ts +16 -0
- package/lib/modal/tooltip/tooltip.directive.d.ts +18 -0
- package/lib/riv.module.d.ts +16 -10
- package/lib/visualization/donut/donut.component.d.ts +2 -1
- package/lib/visualization/legend-item/legend-item.component.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DecimalPipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DaysPipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.inner = new DecimalPipe('en-us');
|
|
7
|
+
}
|
|
8
|
+
transform(value, digitsInfo) {
|
|
9
|
+
const ret = this.inner.transform(value, digitsInfo ?? '1.0-2');
|
|
10
|
+
return ret ? ret + (value === 1 ? ' day' : ' days') : '-';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
DaysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DaysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
14
|
+
DaysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DaysPipe, name: "rivDays" });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DaysPipe, decorators: [{
|
|
16
|
+
type: Pipe,
|
|
17
|
+
args: [{ name: 'rivDays' }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3BpcGVzL2RheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxRQUFRO0lBRHJCO1FBRW1CLFVBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUtuRDtJQUpDLFNBQVMsQ0FBQyxLQUE2QixFQUFFLFVBQW1CO1FBQzFELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksT0FBTyxDQUFDLENBQUM7UUFDL0QsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM1RCxDQUFDOztxR0FMVSxRQUFRO21HQUFSLFFBQVE7MkZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ3JpdkRheXMnIH0pXG5leHBvcnQgY2xhc3MgRGF5c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbm5lciA9IG5ldyBEZWNpbWFsUGlwZSgnZW4tdXMnKTtcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLCBkaWdpdHNJbmZvPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5pbm5lci50cmFuc2Zvcm0odmFsdWUsIGRpZ2l0c0luZm8gPz8gJzEuMC0yJyk7XG4gICAgcmV0dXJuIHJldCA/IHJldCArICh2YWx1ZSA9PT0gMSA/ICcgZGF5JyA6ICcgZGF5cycpIDogJy0nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DecimalPipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NumberPipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.inner = new DecimalPipe('en-us');
|
|
7
|
+
}
|
|
8
|
+
transform(value, digitsInfo) {
|
|
9
|
+
return this.inner.transform(value, digitsInfo ?? '1.0-0') ?? '-';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
NumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
NumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NumberPipe, name: "rivNumber" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'rivNumber' }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9mb3JtYXQvcGlwZXMvbnVtYmVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVtQixVQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FJbkQ7SUFIQyxTQUFTLENBQUMsS0FBc0IsRUFBRSxVQUFtQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25FLENBQUM7O3VHQUpVLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUR0QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAncml2TnVtYmVyJyB9KVxuZXhwb3J0IGNsYXNzIE51bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbm5lciA9IG5ldyBEZWNpbWFsUGlwZSgnZW4tdXMnKTtcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIGRpZ2l0c0luZm8/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lci50cmFuc2Zvcm0odmFsdWUsIGRpZ2l0c0luZm8gPz8gJzEuMC0wJykgPz8gJy0nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PercentPipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class PercentagePipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.inner = new PercentPipe('en-us');
|
|
7
|
+
}
|
|
8
|
+
transform(value, digitsInfo) {
|
|
9
|
+
return this.inner.transform(value, digitsInfo ?? '1.1-1') ?? '-';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
PercentagePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PercentagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
PercentagePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PercentagePipe, name: "rivPercentage" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PercentagePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'rivPercentage' }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudGFnZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3BpcGVzL3BlcmNlbnRhZ2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRW1CLFVBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUluRDtJQUhDLFNBQVMsQ0FBQyxLQUFzQixFQUFFLFVBQW1CO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDbkUsQ0FBQzs7MkdBSlUsY0FBYzt5R0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7IG5hbWU6ICdyaXZQZXJjZW50YWdlJyB9KVxuZXhwb3J0IGNsYXNzIFBlcmNlbnRhZ2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5uZXIgPSBuZXcgUGVyY2VudFBpcGUoJ2VuLXVzJyk7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBkaWdpdHNJbmZvPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXIudHJhbnNmb3JtKHZhbHVlLCBkaWdpdHNJbmZvID8/ICcxLjEtMScpID8/ICctJztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CurrencyPipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SmallCurrencyPipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.inner = new CurrencyPipe('en-us');
|
|
7
|
+
}
|
|
8
|
+
transform(value, digitsInfo) {
|
|
9
|
+
if (value === null) {
|
|
10
|
+
return '-';
|
|
11
|
+
}
|
|
12
|
+
const num = typeof value == 'string' ? Number.parseFloat(value) : value;
|
|
13
|
+
const magnitude = Math.log10(Math.abs(num));
|
|
14
|
+
if (num === 0) {
|
|
15
|
+
return (this.inner.transform(num, undefined, undefined, digitsInfo ?? '1.0-0') ?? '-');
|
|
16
|
+
}
|
|
17
|
+
if (magnitude >= 9) {
|
|
18
|
+
return ((this.inner.transform(num / 1000000000, undefined, undefined, digitsInfo ?? num / 1000000000 >= 100 ? '1.0-0' : '1.0-2') ?? '-') + 'B');
|
|
19
|
+
}
|
|
20
|
+
if (magnitude >= 6) {
|
|
21
|
+
return ((this.inner.transform(num / 1000000, undefined, undefined, digitsInfo ?? num / 1000000 >= 100 ? '1.0-0' : '1.0-2') ?? '-') + 'M');
|
|
22
|
+
}
|
|
23
|
+
if (magnitude >= 3) {
|
|
24
|
+
return ((this.inner.transform(num / 1000, undefined, undefined, digitsInfo ?? num / 1000 >= 100 ? '1.0-0' : '1.0-2') ?? '-') + 'K');
|
|
25
|
+
}
|
|
26
|
+
return (this.inner.transform(num, undefined, undefined, digitsInfo ?? num >= 100 ? '1.0-0' : '1.0-2') ?? '-');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
SmallCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmallCurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
30
|
+
SmallCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SmallCurrencyPipe, name: "rivSmallCurrency" });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmallCurrencyPipe, decorators: [{
|
|
32
|
+
type: Pipe,
|
|
33
|
+
args: [{ name: 'rivSmallCurrency' }]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtY3VycmVuY3kucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2Zvcm1hdC9waXBlcy9zbWFsbC1jdXJyZW5jeS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVtQixVQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7S0EyRHBEO0lBMURRLFNBQVMsQ0FBQyxLQUE2QixFQUFFLFVBQW1CO1FBQ2pFLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsTUFBTSxHQUFHLEdBQ1AsT0FBTyxLQUFLLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFNUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQ2IsT0FBTyxDQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUNsQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLElBQUksT0FBTyxDQUN0QixJQUFJLEdBQUcsQ0FDVCxDQUFDO1NBQ0g7UUFDRCxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ25CLEdBQUcsR0FBRyxVQUFhLEVBQ25CLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxJQUFJLEdBQUcsR0FBRyxVQUFhLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDN0QsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQ2hCLENBQUM7U0FDSDtRQUNELElBQUksU0FBUyxJQUFJLENBQUMsRUFBRTtZQUNsQixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDbkIsR0FBRyxHQUFHLE9BQVMsRUFDZixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsSUFBSSxHQUFHLEdBQUcsT0FBUyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3pELElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUNoQixDQUFDO1NBQ0g7UUFDRCxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ25CLEdBQUcsR0FBRyxJQUFLLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLElBQUksR0FBRyxHQUFHLElBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUNyRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FDaEIsQ0FBQztTQUNIO1FBQ0QsT0FBTyxDQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUNsQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQzdDLElBQUksR0FBRyxDQUNULENBQUM7SUFDSixDQUFDOzs4R0EzRFUsaUJBQWlCOzRHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ3JpdlNtYWxsQ3VycmVuY3knIH0pXG5leHBvcnQgY2xhc3MgU21hbGxDdXJyZW5jeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbm5lciA9IG5ldyBDdXJyZW5jeVBpcGUoJ2VuLXVzJyk7XG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwsIGRpZ2l0c0luZm8/OiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnLSc7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtOiBudW1iZXIgPVxuICAgICAgdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnID8gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XG4gICAgY29uc3QgbWFnbml0dWRlID0gTWF0aC5sb2cxMChNYXRoLmFicyhudW0pKTtcblxuICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuaW5uZXIudHJhbnNmb3JtKFxuICAgICAgICAgIG51bSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIGRpZ2l0c0luZm8gPz8gJzEuMC0wJyxcbiAgICAgICAgKSA/PyAnLSdcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChtYWduaXR1ZGUgPj0gOSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKHRoaXMuaW5uZXIudHJhbnNmb3JtKFxuICAgICAgICAgIG51bSAvIDFfMDAwXzAwMF8wMDAsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICBkaWdpdHNJbmZvID8/IG51bSAvIDFfMDAwXzAwMF8wMDAgPj0gMTAwID8gJzEuMC0wJyA6ICcxLjAtMicsXG4gICAgICAgICkgPz8gJy0nKSArICdCJ1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG1hZ25pdHVkZSA+PSA2KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5pbm5lci50cmFuc2Zvcm0oXG4gICAgICAgICAgbnVtIC8gMV8wMDBfMDAwLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgZGlnaXRzSW5mbyA/PyBudW0gLyAxXzAwMF8wMDAgPj0gMTAwID8gJzEuMC0wJyA6ICcxLjAtMicsXG4gICAgICAgICkgPz8gJy0nKSArICdNJ1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG1hZ25pdHVkZSA+PSAzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5pbm5lci50cmFuc2Zvcm0oXG4gICAgICAgICAgbnVtIC8gMV8wMDAsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICBkaWdpdHNJbmZvID8/IG51bSAvIDFfMDAwID49IDEwMCA/ICcxLjAtMCcgOiAnMS4wLTInLFxuICAgICAgICApID8/ICctJykgKyAnSydcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlubmVyLnRyYW5zZm9ybShcbiAgICAgICAgbnVtLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgZGlnaXRzSW5mbyA/PyBudW0gPj0gMTAwID8gJzEuMC0wJyA6ICcxLjAtMicsXG4gICAgICApID8/ICctJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../callout/callout.component";
|
|
5
|
+
export class TooltipComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.anchor = null;
|
|
8
|
+
this.theme = 'dark';
|
|
9
|
+
this.onMouseEnter = new EventEmitter();
|
|
10
|
+
this.onMouseLeave = new EventEmitter();
|
|
11
|
+
this.isTemplate = isTemplate;
|
|
12
|
+
}
|
|
13
|
+
_onMouseLeave(evt) {
|
|
14
|
+
this.onMouseLeave.emit(evt);
|
|
15
|
+
}
|
|
16
|
+
_onMouseEnter(evt) {
|
|
17
|
+
this.onMouseEnter.emit(evt);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TooltipComponent, selector: "riv-tooltip", inputs: { anchor: "anchor", content: "content", theme: "theme" }, outputs: { onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave" }, host: { listeners: { "mouseleave": "_onMouseLeave()", "mouseenter": "_onMouseEnter()" } }, ngImport: i0, template: "<riv-callout\n [anchor]=\"anchor\"\n [preferredPosition]=\"'top-center'\"\n [allowedPositions]=\"[\n 'top-center',\n 'center-right',\n 'bottom-center',\n 'center-left'\n ]\"\n [isModal]=\"false\"\n [theme]=\"theme\"\n>\n <div class=\"content\">\n <ng-container *ngIf=\"content && isTemplate(content); else stringContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-template #stringContent>\n {{ content }}\n </ng-template>\n </div>\n</riv-callout>\n", styles: [".content{padding:var(--size-xsmall) var(--size-small)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'riv-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-callout\n [anchor]=\"anchor\"\n [preferredPosition]=\"'top-center'\"\n [allowedPositions]=\"[\n 'top-center',\n 'center-right',\n 'bottom-center',\n 'center-left'\n ]\"\n [isModal]=\"false\"\n [theme]=\"theme\"\n>\n <div class=\"content\">\n <ng-container *ngIf=\"content && isTemplate(content); else stringContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-template #stringContent>\n {{ content }}\n </ng-template>\n </div>\n</riv-callout>\n", styles: [".content{padding:var(--size-xsmall) var(--size-small)}\n"] }]
|
|
25
|
+
}], propDecorators: { anchor: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], content: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], theme: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], onMouseEnter: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}], onMouseLeave: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}], _onMouseLeave: [{
|
|
36
|
+
type: HostListener,
|
|
37
|
+
args: ['mouseleave']
|
|
38
|
+
}], _onMouseEnter: [{
|
|
39
|
+
type: HostListener,
|
|
40
|
+
args: ['mouseenter']
|
|
41
|
+
}] } });
|
|
42
|
+
function isTemplate(v) {
|
|
43
|
+
return typeof v !== 'string';
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvbW9kYWwvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBUUUsV0FBTSxHQUE2QixJQUFJLENBQUM7UUFNeEMsVUFBSyxHQUFxQixNQUFNLENBQUM7UUFHakMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRzlDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQVVyQyxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBQ2xDO0lBVDZCLGFBQWEsQ0FBQyxHQUFlO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFMkIsYUFBYSxDQUFDLEdBQWU7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7NkdBdEJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHlSQ2hCN0IseWhCQXFCQTsyRkRMYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNO2dCQUdxQixhQUFhO3NCQUF4QyxZQUFZO3VCQUFDLFlBQVk7Z0JBSUUsYUFBYTtzQkFBeEMsWUFBWTt1QkFBQyxZQUFZOztBQU81QixTQUFTLFVBQVUsQ0FDakIsQ0FBZ0M7SUFFaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBhbmNob3I6IEVsZW1lbnQgfCBET01SZWN0IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgY29udGVudD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2RhcmsnO1xuXG4gIEBPdXRwdXQoKVxuICBvbk1vdXNlRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uTW91c2VMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgX29uTW91c2VMZWF2ZShldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm9uTW91c2VMZWF2ZS5lbWl0KGV2dCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgX29uTW91c2VFbnRlcihldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm9uTW91c2VFbnRlci5lbWl0KGV2dCk7XG4gIH1cblxuICByZWFkb25seSBpc1RlbXBsYXRlID0gaXNUZW1wbGF0ZTtcbn1cblxuZnVuY3Rpb24gaXNUZW1wbGF0ZShcbiAgdjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4sXG4pOiB2IGlzIFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgcmV0dXJuIHR5cGVvZiB2ICE9PSAnc3RyaW5nJztcbn1cbiIsIjxyaXYtY2FsbG91dFxuICBbYW5jaG9yXT1cImFuY2hvclwiXG4gIFtwcmVmZXJyZWRQb3NpdGlvbl09XCIndG9wLWNlbnRlcidcIlxuICBbYWxsb3dlZFBvc2l0aW9uc109XCJbXG4gICAgJ3RvcC1jZW50ZXInLFxuICAgICdjZW50ZXItcmlnaHQnLFxuICAgICdib3R0b20tY2VudGVyJyxcbiAgICAnY2VudGVyLWxlZnQnXG4gIF1cIlxuICBbaXNNb2RhbF09XCJmYWxzZVwiXG4gIFt0aGVtZV09XCJ0aGVtZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQgJiYgaXNUZW1wbGF0ZShjb250ZW50KTsgZWxzZSBzdHJpbmdDb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3RyaW5nQ29udGVudD5cbiAgICAgIHt7IGNvbnRlbnQgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvcml2LWNhbGxvdXQ+XG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Directive, HostListener, Input, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import { TooltipComponent } from './tooltip.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TooltipDirective {
|
|
5
|
+
constructor(el, applicationRef) {
|
|
6
|
+
this.el = el;
|
|
7
|
+
this.applicationRef = applicationRef;
|
|
8
|
+
this.rivTooltipTheme = 'dark';
|
|
9
|
+
this.closeDelay = 100;
|
|
10
|
+
}
|
|
11
|
+
onMouseEnter() {
|
|
12
|
+
if (!this.rivTooltip)
|
|
13
|
+
return;
|
|
14
|
+
if (this.tooltipRef) {
|
|
15
|
+
this.cancelClose();
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const tooltip = this.applicationRef.components[0].injector
|
|
19
|
+
.get(ViewContainerRef)
|
|
20
|
+
.createComponent(TooltipComponent);
|
|
21
|
+
tooltip.instance.anchor = this.el.nativeElement;
|
|
22
|
+
tooltip.instance.content = this.rivTooltip;
|
|
23
|
+
tooltip.instance.theme = this.rivTooltipTheme;
|
|
24
|
+
tooltip.instance.onMouseEnter.subscribe(this.cancelClose.bind(this));
|
|
25
|
+
tooltip.instance.onMouseLeave.subscribe(this.initiateClose.bind(this));
|
|
26
|
+
this.tooltipRef = tooltip;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
onMouseLeave() {
|
|
30
|
+
this.initiateClose();
|
|
31
|
+
}
|
|
32
|
+
initiateClose() {
|
|
33
|
+
this.closeTimeout = window.setTimeout(() => {
|
|
34
|
+
this.tooltipRef?.destroy();
|
|
35
|
+
this.tooltipRef = undefined;
|
|
36
|
+
}, this.closeDelay);
|
|
37
|
+
}
|
|
38
|
+
cancelClose() {
|
|
39
|
+
window.clearTimeout(this.closeTimeout);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
+
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: TooltipDirective, selector: "[rivTooltip]", inputs: { rivTooltip: "rivTooltip", rivTooltipTheme: "rivTooltipTheme", closeDelay: "closeDelay" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
45
|
+
type: Directive,
|
|
46
|
+
args: [{
|
|
47
|
+
selector: '[rivTooltip]',
|
|
48
|
+
}]
|
|
49
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ApplicationRef }]; }, propDecorators: { rivTooltip: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], rivTooltipTheme: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], closeDelay: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], onMouseEnter: [{
|
|
56
|
+
type: HostListener,
|
|
57
|
+
args: ['mouseenter']
|
|
58
|
+
}], onMouseLeave: [{
|
|
59
|
+
type: HostListener,
|
|
60
|
+
args: ['mouseleave']
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDbUIsRUFBYyxFQUNkLGNBQThCO1FBRDlCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFPakQsb0JBQWUsR0FBcUIsTUFBTSxDQUFDO1FBRzNDLGVBQVUsR0FBVyxHQUFHLENBQUM7SUFUdEIsQ0FBQztJQWN3QixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtpQkFDdkQsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2lCQUNyQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRTJCLFlBQVk7UUFDdEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzlCLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs2R0FoRFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFINUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7OEhBUUMsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBTXNCLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWTtnQkFpQkUsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyaXZUb29sdGlwXScsXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICApIHt9XG5cbiAgQElucHV0KClcbiAgcml2VG9vbHRpcD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIHJpdlRvb2x0aXBUaGVtZTogJ2RhcmsnIHwgJ2xpZ2h0JyA9ICdkYXJrJztcblxuICBASW5wdXQoKVxuICBjbG9zZURlbGF5OiBudW1iZXIgPSAxMDA7XG5cbiAgcHJpdmF0ZSB0b29sdGlwUmVmPzogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+O1xuICBwcml2YXRlIGNsb3NlVGltZW91dD86IG51bWJlcjtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICghdGhpcy5yaXZUb29sdGlwKSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgdGhpcy5jYW5jZWxDbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5hcHBsaWNhdGlvblJlZi5jb21wb25lbnRzWzBdLmluamVjdG9yXG4gICAgICAgIC5nZXQoVmlld0NvbnRhaW5lclJlZilcbiAgICAgICAgLmNyZWF0ZUNvbXBvbmVudChUb29sdGlwQ29tcG9uZW50KTtcbiAgICAgIHRvb2x0aXAuaW5zdGFuY2UuYW5jaG9yID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5yaXZUb29sdGlwO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS50aGVtZSA9IHRoaXMucml2VG9vbHRpcFRoZW1lO1xuICAgICAgdG9vbHRpcC5pbnN0YW5jZS5vbk1vdXNlRW50ZXIuc3Vic2NyaWJlKHRoaXMuY2FuY2VsQ2xvc2UuYmluZCh0aGlzKSk7XG4gICAgICB0b29sdGlwLmluc3RhbmNlLm9uTW91c2VMZWF2ZS5zdWJzY3JpYmUodGhpcy5pbml0aWF0ZUNsb3NlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gdG9vbHRpcDtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaW5pdGlhdGVDbG9zZSgpO1xuICB9XG5cbiAgaW5pdGlhdGVDbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudG9vbHRpcFJlZj8uZGVzdHJveSgpO1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gdW5kZWZpbmVkO1xuICAgIH0sIHRoaXMuY2xvc2VEZWxheSk7XG4gIH1cblxuICBjYW5jZWxDbG9zZSgpIHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgfVxufVxuIl19
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
+
import { CalloutComponent } from './modal/callout/callout.component';
|
|
2
|
+
import { CalloutDirective } from './modal/callout/callout.directive';
|
|
3
|
+
import { CalloutOutletComponent } from './modal/callout/callout-outlet.component';
|
|
1
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { DataTableCellComponent } from './visualization/data-table/data-table-cell.component';
|
|
6
|
+
import { DataTableComponent } from './visualization/data-table/data-table.component';
|
|
7
|
+
import { DataTableHeaderCellComponent } from './visualization/data-table/data-table-header-cell.component';
|
|
8
|
+
import { DataTableRowComponent } from './visualization/data-table/data-table-row.component';
|
|
9
|
+
import { DaysPipe } from './format/pipes/days.pipe';
|
|
2
10
|
import { DonutComponent } from './visualization/donut/donut.component';
|
|
3
11
|
import { IconComponent } from '../public-api';
|
|
4
12
|
import { LegendItemComponent } from './visualization/legend-item/legend-item.component';
|
|
5
13
|
import { MetricComponent } from './visualization/metric/metric.component';
|
|
6
14
|
import { NgModule } from '@angular/core';
|
|
15
|
+
import { NumberPipe } from './format/pipes/number.pipe';
|
|
16
|
+
import { PercentagePipe } from './format/pipes/percentage.pipe';
|
|
17
|
+
import { SmallCurrencyPipe } from './format/pipes/small-currency.pipe';
|
|
18
|
+
import { StackedColumnComponent } from './visualization/stacked-column/stacked-column.component';
|
|
7
19
|
import { TextToggleComponent } from './content-toggle/text-toggle/text-toggle.component';
|
|
8
20
|
import { TimeSeriesComponent } from './visualization/time-series/time-series.component';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { DataTableCellComponent } from './visualization/data-table/data-table-cell.component';
|
|
12
|
-
import { DataTableHeaderCellComponent } from './visualization/data-table/data-table-header-cell.component';
|
|
13
|
-
import { CalloutComponent } from './modal/callout/callout.component';
|
|
14
|
-
import { CalloutOutletComponent } from './modal/callout/callout-outlet.component';
|
|
15
|
-
import { CalloutDirective } from './modal/callout/callout.directive';
|
|
21
|
+
import { TooltipComponent } from './modal/tooltip/tooltip.component';
|
|
22
|
+
import { TooltipDirective } from './modal/tooltip/tooltip.directive';
|
|
16
23
|
import { ZeroStateComponent } from './visualization/zero-state/zero-state.component';
|
|
17
|
-
import { StackedColumnComponent } from './visualization/stacked-column/stacked-column.component';
|
|
18
24
|
import * as i0 from "@angular/core";
|
|
19
25
|
export class RivModule {
|
|
20
26
|
}
|
|
@@ -26,13 +32,19 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
26
32
|
DataTableComponent,
|
|
27
33
|
DataTableHeaderCellComponent,
|
|
28
34
|
DataTableRowComponent,
|
|
35
|
+
DaysPipe,
|
|
29
36
|
DonutComponent,
|
|
30
37
|
IconComponent,
|
|
31
38
|
LegendItemComponent,
|
|
32
39
|
MetricComponent,
|
|
40
|
+
NumberPipe,
|
|
41
|
+
PercentagePipe,
|
|
42
|
+
SmallCurrencyPipe,
|
|
33
43
|
StackedColumnComponent,
|
|
34
44
|
TextToggleComponent,
|
|
35
45
|
TimeSeriesComponent,
|
|
46
|
+
TooltipComponent,
|
|
47
|
+
TooltipDirective,
|
|
36
48
|
ZeroStateComponent], imports: [CommonModule], exports: [CalloutComponent,
|
|
37
49
|
CalloutDirective,
|
|
38
50
|
CalloutOutletComponent,
|
|
@@ -40,13 +52,19 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
40
52
|
DataTableComponent,
|
|
41
53
|
DataTableHeaderCellComponent,
|
|
42
54
|
DataTableRowComponent,
|
|
55
|
+
DaysPipe,
|
|
43
56
|
DonutComponent,
|
|
44
57
|
IconComponent,
|
|
45
58
|
LegendItemComponent,
|
|
46
59
|
MetricComponent,
|
|
60
|
+
NumberPipe,
|
|
61
|
+
PercentagePipe,
|
|
62
|
+
SmallCurrencyPipe,
|
|
47
63
|
StackedColumnComponent,
|
|
48
64
|
TextToggleComponent,
|
|
49
65
|
TimeSeriesComponent,
|
|
66
|
+
TooltipComponent,
|
|
67
|
+
TooltipDirective,
|
|
50
68
|
ZeroStateComponent] });
|
|
51
69
|
RivModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RivModule, imports: [CommonModule] });
|
|
52
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RivModule, decorators: [{
|
|
@@ -60,13 +78,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
60
78
|
DataTableComponent,
|
|
61
79
|
DataTableHeaderCellComponent,
|
|
62
80
|
DataTableRowComponent,
|
|
81
|
+
DaysPipe,
|
|
63
82
|
DonutComponent,
|
|
64
83
|
IconComponent,
|
|
65
84
|
LegendItemComponent,
|
|
66
85
|
MetricComponent,
|
|
86
|
+
NumberPipe,
|
|
87
|
+
PercentagePipe,
|
|
88
|
+
SmallCurrencyPipe,
|
|
67
89
|
StackedColumnComponent,
|
|
68
90
|
TextToggleComponent,
|
|
69
91
|
TimeSeriesComponent,
|
|
92
|
+
TooltipComponent,
|
|
93
|
+
TooltipDirective,
|
|
70
94
|
ZeroStateComponent,
|
|
71
95
|
],
|
|
72
96
|
exports: [
|
|
@@ -77,16 +101,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
77
101
|
DataTableComponent,
|
|
78
102
|
DataTableHeaderCellComponent,
|
|
79
103
|
DataTableRowComponent,
|
|
104
|
+
DaysPipe,
|
|
80
105
|
DonutComponent,
|
|
81
106
|
IconComponent,
|
|
82
107
|
LegendItemComponent,
|
|
83
108
|
MetricComponent,
|
|
109
|
+
NumberPipe,
|
|
110
|
+
PercentagePipe,
|
|
111
|
+
SmallCurrencyPipe,
|
|
84
112
|
StackedColumnComponent,
|
|
85
113
|
TextToggleComponent,
|
|
86
114
|
TimeSeriesComponent,
|
|
115
|
+
TooltipComponent,
|
|
116
|
+
TooltipDirective,
|
|
87
117
|
ZeroStateComponent,
|
|
88
118
|
],
|
|
89
119
|
imports: [CommonModule],
|
|
90
120
|
}]
|
|
91
121
|
}] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQW1EckYsTUFBTSxPQUFPLFNBQVM7O3NHQUFULFNBQVM7dUdBQVQsU0FBUyxpQkEvQ2xCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsNEJBQTRCO1FBQzVCLHFCQUFxQjtRQUNyQixRQUFRO1FBQ1IsY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLFVBQVU7UUFDVixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsa0JBQWtCLGFBeUJWLFlBQVksYUF0QnBCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsNEJBQTRCO1FBQzVCLHFCQUFxQjtRQUNyQixRQUFRO1FBQ1IsY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLFVBQVU7UUFDVixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsa0JBQWtCO3VHQUlULFNBQVMsWUFGVixZQUFZOzJGQUVYLFNBQVM7a0JBakRyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxvdXRDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsbG91dERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwvY2FsbG91dC9jYWxsb3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDYWxsb3V0T3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC9jYWxsb3V0L2NhbGxvdXQtb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXlzUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RheXMucGlwZSc7XG5pbXBvcnQgeyBEb251dENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kb251dC9kb251dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdW1iZXJQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgUGVyY2VudGFnZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9wZXJjZW50YWdlLnBpcGUnO1xuaW1wb3J0IHsgU21hbGxDdXJyZW5jeVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9zbWFsbC1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7IFN0YWNrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc3RhY2tlZC1jb2x1bW4vc3RhY2tlZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtdG9nZ2xlL3RleHQtdG9nZ2xlL3RleHQtdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RpbWUtc2VyaWVzL3RpbWUtc2VyaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL21vZGFsL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgWmVyb1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDYWxsb3V0Q29tcG9uZW50LFxuICAgIENhbGxvdXREaXJlY3RpdmUsXG4gICAgQ2FsbG91dE91dGxldENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBEYXlzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTWV0cmljQ29tcG9uZW50LFxuICAgIE51bWJlclBpcGUsXG4gICAgUGVyY2VudGFnZVBpcGUsXG4gICAgU21hbGxDdXJyZW5jeVBpcGUsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBUZXh0VG9nZ2xlQ29tcG9uZW50LFxuICAgIFRpbWVTZXJpZXNDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIFplcm9TdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENhbGxvdXRDb21wb25lbnQsXG4gICAgQ2FsbG91dERpcmVjdGl2ZSxcbiAgICBDYWxsb3V0T3V0bGV0Q29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93Q29tcG9uZW50LFxuICAgIERheXNQaXBlLFxuICAgIERvbnV0Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBTbWFsbEN1cnJlbmN5UGlwZSxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFRleHRUb2dnbGVDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUml2TW9kdWxlIHt9XG4iXX0=
|
|
@@ -2,7 +2,8 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
|
2
2
|
import { arc, pie } from 'd3-shape';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "
|
|
5
|
+
import * as i2 from "../../modal/tooltip/tooltip.directive";
|
|
6
|
+
import * as i3 from "../zero-state/zero-state.component";
|
|
6
7
|
export class DonutComponent {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.displayLabel = '';
|
|
@@ -31,15 +32,17 @@ export class DonutComponent {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
DonutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.value{font-size:var(--type-6-font-size);line-height:var(--type-6-line-height-0);font-weight:var(--font-weight-heavy)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}\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: "
|
|
35
|
+
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data", displayTooltip: "displayTooltip" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.value{font-size:var(--type-6-font-size);line-height:var(--type-6-line-height-0);font-weight:var(--font-weight-heavy)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}\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: "directive", type: i2.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "closeDelay"] }, { kind: "component", type: i3.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
35
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, decorators: [{
|
|
36
37
|
type: Component,
|
|
37
|
-
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.value{font-size:var(--type-6-font-size);line-height:var(--type-6-line-height-0);font-weight:var(--font-weight-heavy)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}\n"] }]
|
|
38
|
+
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.value{font-size:var(--type-6-font-size);line-height:var(--type-6-line-height-0);font-weight:var(--font-weight-heavy)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}\n"] }]
|
|
38
39
|
}], propDecorators: { displayLabel: [{
|
|
39
40
|
type: Input
|
|
40
41
|
}], displayValue: [{
|
|
41
42
|
type: Input
|
|
42
43
|
}], data: [{
|
|
43
44
|
type: Input
|
|
45
|
+
}], displayTooltip: [{
|
|
46
|
+
type: Input
|
|
44
47
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdmlzdWFsaXphdGlvbi9kb251dC9kb251dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL2RvbnV0L2RvbnV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQWFwQyxNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVFFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBS25CLFdBQU0sR0FBRyxHQUFHLENBQUM7S0EyQnZCO0lBekJDLElBQUksUUFBUTtRQUNWLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQWtCO2FBQ2xDLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDaEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDMUIsR0FBRyxFQUFrQjthQUNsQixXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ2xCLFdBQVcsQ0FBQyxLQUFLLENBQUM7YUFDbEIsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNmLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2FBQzdCLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7OzJHQXZDVSxjQUFjOytGQUFkLGNBQWMseUtDZDNCLHVtQkFzQkE7MkZEUmEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhcmMsIHBpZSB9IGZyb20gJ2QzLXNoYXBlJztcblxuZXhwb3J0IHR5cGUgRG9udXREYXRhUG9pbnQgPSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yVG9rZW46IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1kb251dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb251dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvbnV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERvbnV0Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZGlzcGxheUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGRhdGE6IERvbnV0RGF0YVBvaW50W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBkaXNwbGF5VG9vbHRpcD86IHN0cmluZztcblxuICByZWFkb25seSBIRUlHSFQgPSAyNTY7XG5cbiAgZ2V0IGFyY1BhdGhzKCkge1xuICAgIGNvbnN0IG91dGVyID0gKHRoaXMuSEVJR0hUIC8gMikgKiAwLjk7XG4gICAgY29uc3QgaW5uZXIgPSBvdXRlciAtIDEyO1xuICAgIGNvbnN0IHBpZUFyY3MgPSBwaWU8RG9udXREYXRhUG9pbnQ+KClcbiAgICAgIC5zb3J0VmFsdWVzKG51bGwpXG4gICAgICAudmFsdWUoZCA9PiBkLnZhbHVlKSh0aGlzLmRhdGEpO1xuICAgIHJldHVybiBwaWVBcmNzLm1hcChwaWVBcmMgPT5cbiAgICAgIGFyYzxEb251dERhdGFQb2ludD4oKVxuICAgICAgICAuaW5uZXJSYWRpdXMoaW5uZXIpXG4gICAgICAgIC5vdXRlclJhZGl1cyhvdXRlcilcbiAgICAgICAgLnBhZEFuZ2xlKDAuMDEzKVxuICAgICAgICAuc3RhcnRBbmdsZShwaWVBcmMuc3RhcnRBbmdsZSlcbiAgICAgICAgLmVuZEFuZ2xlKHBpZUFyYy5lbmRBbmdsZSkocGllQXJjLmRhdGEpLFxuICAgICk7XG4gIH1cblxuICBnZXRGaWxsU3R5bGUoaWR4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdmFyKCR7dGhpcy5kYXRhW2lkeF0uY29sb3JUb2tlbn0pYDtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kYXRhLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmRhdGEuZXZlcnkocG9pbnQgPT4gcG9pbnQudmFsdWUgPT09IDApXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFlbXB0eTsgZWxzZSB6ZXJvU3RhdGVcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwiSEVJR0hUXCJcbiAgICB2aWV3Qm94PVwiLTEyOCAtMTI4IDI1NiAyNTZcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgICpuZ0Zvcj1cImxldCBwYXRoIG9mIGFyY1BhdGhzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICBbYXR0ci5maWxsXT1cImdldEZpbGxTdHlsZShpKVwiXG4gICAgPjwvcGF0aD5cbiAgPC9zdmc+XG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5XCI+XG4gICAgPGRpdiBjbGFzcz1cInZhbHVlXCIgW3JpdlRvb2x0aXBdPVwiZGlzcGxheVRvb2x0aXBcIj57eyBkaXNwbGF5VmFsdWUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBkaXNwbGF5TGFiZWwgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN6ZXJvU3RhdGU+XG4gIDxyaXYtemVyby1zdGF0ZT48L3Jpdi16ZXJvLXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../../icon/icon.component";
|
|
5
|
+
import * as i3 from "../../modal/tooltip/tooltip.directive";
|
|
5
6
|
export class LegendItemComponent {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.label = '';
|
|
@@ -15,10 +16,10 @@ export class LegendItemComponent {
|
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
LegendItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LegendItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
LegendItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LegendItemComponent, selector: "riv-legend-item", inputs: { label: "label", colorToken: "colorToken", style: "style", visibility: "visibility" }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "<button (click)=\"itemClick.emit()\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n", styles: [":host{display:inline-flex;align-items:center;gap:var(--size-small)}i{width:var(--size-large);height:var(--size-large)}i.striped{background-image:repeating-linear-gradient(315deg,transparent 0px,transparent 2.5px,var(--white-100) 2.5px,var(--white-100) 3.5px,transparent 3.5px,transparent 6px)}span{color:var(--type-light-low-contrast);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}button{display:inline-flex}riv-icon,span.low-contrast{color:var(--type-light-disabled)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
+
LegendItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LegendItemComponent, selector: "riv-legend-item", inputs: { label: "label", colorToken: "colorToken", style: "style", visibility: "visibility", iconTooltip: "iconTooltip" }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "<button (click)=\"itemClick.emit()\" [rivTooltip]=\"iconTooltip\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n", styles: [":host{display:inline-flex;align-items:center;gap:var(--size-small)}i{width:var(--size-large);height:var(--size-large)}i.striped{background-image:repeating-linear-gradient(315deg,transparent 0px,transparent 2.5px,var(--white-100) 2.5px,var(--white-100) 3.5px,transparent 3.5px,transparent 6px)}span{color:var(--type-light-low-contrast);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}button{display:inline-flex}riv-icon,span.low-contrast{color:var(--type-light-disabled)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "closeDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LegendItemComponent, decorators: [{
|
|
20
21
|
type: Component,
|
|
21
|
-
args: [{ selector: 'riv-legend-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button (click)=\"itemClick.emit()\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n", styles: [":host{display:inline-flex;align-items:center;gap:var(--size-small)}i{width:var(--size-large);height:var(--size-large)}i.striped{background-image:repeating-linear-gradient(315deg,transparent 0px,transparent 2.5px,var(--white-100) 2.5px,var(--white-100) 3.5px,transparent 3.5px,transparent 6px)}span{color:var(--type-light-low-contrast);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}button{display:inline-flex}riv-icon,span.low-contrast{color:var(--type-light-disabled)}\n"] }]
|
|
22
|
+
args: [{ selector: 'riv-legend-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button (click)=\"itemClick.emit()\" [rivTooltip]=\"iconTooltip\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n", styles: [":host{display:inline-flex;align-items:center;gap:var(--size-small)}i{width:var(--size-large);height:var(--size-large)}i.striped{background-image:repeating-linear-gradient(315deg,transparent 0px,transparent 2.5px,var(--white-100) 2.5px,var(--white-100) 3.5px,transparent 3.5px,transparent 6px)}span{color:var(--type-light-low-contrast);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}button{display:inline-flex}riv-icon,span.low-contrast{color:var(--type-light-disabled)}\n"] }]
|
|
22
23
|
}], propDecorators: { label: [{
|
|
23
24
|
type: Input
|
|
24
25
|
}], colorToken: [{
|
|
@@ -27,7 +28,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
27
28
|
type: Input
|
|
28
29
|
}], visibility: [{
|
|
29
30
|
type: Input
|
|
31
|
+
}], iconTooltip: [{
|
|
32
|
+
type: Input
|
|
30
33
|
}], itemClick: [{
|
|
31
34
|
type: Output
|
|
32
35
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL2xlZ2VuZC1pdGVtL2xlZ2VuZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2QixNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBUUUsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUduQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBR3hCLFVBQUssR0FBd0IsT0FBTyxDQUFDO1FBR3JDLGVBQVUsR0FBb0MsU0FBUyxDQUFDO1FBVXhELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQ2hDO0lBTkMsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7SUFDbkMsQ0FBQzs7Z0hBbEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHdOQ2RoQyxzaEJBZ0JBOzJGREZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsS0FBSztzQkFESixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFRTixTQUFTO3NCQURSLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtbGVnZW5kLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQtaXRlbS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdlbmRJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGNvbG9yVG9rZW46IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHN0eWxlOiAnc29saWQnIHwgJ3N0cmlwZWQnID0gJ3NvbGlkJztcblxuICBASW5wdXQoKVxuICB2aXNpYmlsaXR5OiAndmlzaWJsZScgfCAnaGlkZGVuJyB8ICdsb2NrZWQnID0gJ3Zpc2libGUnO1xuXG4gIEBJbnB1dCgpXG4gIGljb25Ub29sdGlwPzogc3RyaW5nO1xuXG4gIGdldCBiYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhcigke3RoaXMuY29sb3JUb2tlbn0pYDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG59XG4iLCI8YnV0dG9uIChjbGljayk9XCJpdGVtQ2xpY2suZW1pdCgpXCIgW3JpdlRvb2x0aXBdPVwiaWNvblRvb2x0aXBcIj5cbiAgPGlcbiAgICAqbmdJZj1cInZpc2liaWxpdHkgPT09ICd2aXNpYmxlJ1wiXG4gICAgW2NsYXNzLnN0cmlwZWRdPVwic3R5bGUgPT09ICdzdHJpcGVkJ1wiXG4gICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCJcbiAgPjwvaT5cbiAgPHJpdi1pY29uXG4gICAgKm5nSWY9XCJ2aXNpYmlsaXR5ID09PSAnaGlkZGVuJ1wiXG4gICAgbmFtZT1cIkV5ZU9mZlwiXG4gICAgW3NpemVdPVwiMTZcIlxuICA+PC9yaXYtaWNvbj5cbiAgPHJpdi1pY29uICpuZ0lmPVwidmlzaWJpbGl0eSA9PT0gJ2xvY2tlZCdcIiBuYW1lPVwiTG9ja1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbjwvYnV0dG9uPlxuPHNwYW4gW2NsYXNzLmxvdy1jb250cmFzdF09XCJ2aXNpYmlsaXR5ID09PSAnaGlkZGVuJyB8fCB2aXNpYmlsaXR5ID09PSAnbG9ja2VkJ1wiPlxuICB7eyBsYWJlbCB9fVxuPC9zcGFuPlxuIl19
|
|
@@ -282,7 +282,7 @@ export class TimeSeriesComponent {
|
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
284
|
TimeSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimeSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
-
TimeSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TimeSeriesComponent, selector: "riv-time-series", inputs: { input: "input", width: "width", height: "height" }, ngImport: i0, template: "<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <g *ngFor=\"let tick of d.x.xMajorTicks\">\n <rect\n class=\"tick\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n y=\"0\"\n width=\"1\"\n [attr.height]=\"d.y1.yScale(d.y1.yMin)\"\n ></rect>\n <text\n class=\"x-major-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n dx=\"4\"\n dy=\"-4\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.x.xMinorTicks\">\n <text\n class=\"x-minor-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n text-anchor=\"middle\"\n dominant-baseline=\"hanging\"\n dy=\"8\"\n >\n {{ tick.label }}\n <title>{{ tick.value | date }}</title>\n </text>\n </g>\n <g *ngFor=\"let tick of d.y1.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.y1.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"y-tick-label\" x=\"0\" [attr.y]=\"d.y1.yScale(tick)\" dy=\"-4\">\n {{ d.y1.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngFor=\"let tick of d.y2?.yTicks\">\n <text\n class=\"y-tick-label\"\n [attr.x]=\"d.x.xScale(d.x.xMax)\"\n [attr.y]=\"d.y2?.yScale(tick)\"\n text-anchor=\"end\"\n dy=\"-4\"\n >\n {{ d.y2?.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngIf=\"hoveredMarker$ | async; let hoveredMarker\">\n <line\n class=\"hover-rule\"\n [attr.x1]=\"hoveredMarker.marker.x\"\n [attr.y1]=\"d.y1.yScale(d.y1.yMin)\"\n [attr.x2]=\"hoveredMarker.marker.x\"\n [attr.y2]=\"d.y1.yScale(d.y1.yMax)\"\n stroke-width=\"2\"\n stroke-dasharray=\"4\"\n />\n </g>\n\n <ng-template #seriesTpl let-series=\"series\">\n <path\n class=\"data path\"\n [class.marker-hovered]=\"!!(hoveredMarker$ | async)\"\n [attr.d]=\"series.path\"\n fill=\"none\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n [attr.stroke-dasharray]=\"series.style === 'dashed' ? '4' : null\"\n ></path>\n <circle\n *ngFor=\"let marker of series.markers\"\n class=\"data marker\"\n [class.focused]=\"(hoveredMarker$ | async)?.marker?.x === marker.x\"\n [class.blurred]=\"\n (hoveredMarker$ | async) !== null &&\n (hoveredMarker$ | async)?.marker?.x !== marker.x\n \"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n r=\"3.5\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n (mouseover)=\"hoveredMarker$.next({ event: $event, marker: marker })\"\n (mouseleave)=\"hoveredMarker$.next(null)\"\n ></circle>\n </ng-template>\n <g *ngFor=\"let series of d.y1.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n <g *ngFor=\"let series of d.y2?.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n </svg>\n <legend>\n <riv-legend-item\n *ngFor=\"let item of legend$ | async\"\n [label]=\"item.label\"\n [colorToken]=\"item.colorToken\"\n ></riv-legend-item>\n </legend>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'top-center'\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:flex;flex-direction:column;gap:var(--size-xlarge)}.y-tick-label,.x-major-tick-label{font-size:var(--type-0-font-size);line-height:var(--type-0-line-height-0);fill:var(--type-light-low-contrast)}.x-minor-tick-label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);fill:var(--type-light-low-contrast);text-anchor:middle}.tick{fill:var(--gray-20)}.data.path{transition:stroke-opacity var(--short-transition)}.data.path.marker-hovered{stroke-opacity:.4}.data.marker{fill:var(--surface-light-0);transition:stroke-opacity var(--short-transition)}.data.marker.focused{stroke-opacity:1;filter:drop-shadow(0 1px 1px rgba(10,2,22,.15))}.data.marker.blurred{stroke-opacity:.4}.hover-rule{stroke:var(--gray-20)}legend{display:flex;flex-wrap:wrap;gap:var(--size-large);justify-content:flex-start;align-items:baseline}.callout-content{padding:var(--size-large);display:flex;gap:var(--size-medium)}.callout-metric{display:flex;flex-direction:column;gap:var(--size-xsmall);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}.callout-metric-value{font-weight:var(--font-weight-heavy)}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "directive", type: i3.CalloutDirective, selector: "[riv-callout]" }, { kind: "component", type: i4.LegendItemComponent, selector: "riv-legend-item", inputs: ["label", "colorToken", "style", "visibility"], outputs: ["itemClick"] }, { kind: "component", type: i5.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
285
|
+
TimeSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TimeSeriesComponent, selector: "riv-time-series", inputs: { input: "input", width: "width", height: "height" }, ngImport: i0, template: "<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <g *ngFor=\"let tick of d.x.xMajorTicks\">\n <rect\n class=\"tick\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n y=\"0\"\n width=\"1\"\n [attr.height]=\"d.y1.yScale(d.y1.yMin)\"\n ></rect>\n <text\n class=\"x-major-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n dx=\"4\"\n dy=\"-4\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.x.xMinorTicks\">\n <text\n class=\"x-minor-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n text-anchor=\"middle\"\n dominant-baseline=\"hanging\"\n dy=\"8\"\n >\n {{ tick.label }}\n <title>{{ tick.value | date }}</title>\n </text>\n </g>\n <g *ngFor=\"let tick of d.y1.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.y1.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"y-tick-label\" x=\"0\" [attr.y]=\"d.y1.yScale(tick)\" dy=\"-4\">\n {{ d.y1.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngFor=\"let tick of d.y2?.yTicks\">\n <text\n class=\"y-tick-label\"\n [attr.x]=\"d.x.xScale(d.x.xMax)\"\n [attr.y]=\"d.y2?.yScale(tick)\"\n text-anchor=\"end\"\n dy=\"-4\"\n >\n {{ d.y2?.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngIf=\"hoveredMarker$ | async; let hoveredMarker\">\n <line\n class=\"hover-rule\"\n [attr.x1]=\"hoveredMarker.marker.x\"\n [attr.y1]=\"d.y1.yScale(d.y1.yMin)\"\n [attr.x2]=\"hoveredMarker.marker.x\"\n [attr.y2]=\"d.y1.yScale(d.y1.yMax)\"\n stroke-width=\"2\"\n stroke-dasharray=\"4\"\n />\n </g>\n\n <ng-template #seriesTpl let-series=\"series\">\n <path\n class=\"data path\"\n [class.marker-hovered]=\"!!(hoveredMarker$ | async)\"\n [attr.d]=\"series.path\"\n fill=\"none\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n [attr.stroke-dasharray]=\"series.style === 'dashed' ? '4' : null\"\n ></path>\n <circle\n *ngFor=\"let marker of series.markers\"\n class=\"data marker\"\n [class.focused]=\"(hoveredMarker$ | async)?.marker?.x === marker.x\"\n [class.blurred]=\"\n (hoveredMarker$ | async) !== null &&\n (hoveredMarker$ | async)?.marker?.x !== marker.x\n \"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n r=\"3.5\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n (mouseover)=\"hoveredMarker$.next({ event: $event, marker: marker })\"\n (mouseleave)=\"hoveredMarker$.next(null)\"\n ></circle>\n </ng-template>\n <g *ngFor=\"let series of d.y1.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n <g *ngFor=\"let series of d.y2?.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n </svg>\n <legend>\n <riv-legend-item\n *ngFor=\"let item of legend$ | async\"\n [label]=\"item.label\"\n [colorToken]=\"item.colorToken\"\n ></riv-legend-item>\n </legend>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'top-center'\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:flex;flex-direction:column;gap:var(--size-xlarge)}.y-tick-label,.x-major-tick-label{font-size:var(--type-0-font-size);line-height:var(--type-0-line-height-0);fill:var(--type-light-low-contrast)}.x-minor-tick-label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);fill:var(--type-light-low-contrast);text-anchor:middle}.tick{fill:var(--gray-20)}.data.path{transition:stroke-opacity var(--short-transition)}.data.path.marker-hovered{stroke-opacity:.4}.data.marker{fill:var(--surface-light-0);transition:stroke-opacity var(--short-transition)}.data.marker.focused{stroke-opacity:1;filter:drop-shadow(0 1px 1px rgba(10,2,22,.15))}.data.marker.blurred{stroke-opacity:.4}.hover-rule{stroke:var(--gray-20)}legend{display:flex;flex-wrap:wrap;gap:var(--size-large);justify-content:flex-start;align-items:baseline}.callout-content{padding:var(--size-large);display:flex;gap:var(--size-medium)}.callout-metric{display:flex;flex-direction:column;gap:var(--size-xsmall);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}.callout-metric-value{font-weight:var(--font-weight-heavy)}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "directive", type: i3.CalloutDirective, selector: "[riv-callout]" }, { kind: "component", type: i4.LegendItemComponent, selector: "riv-legend-item", inputs: ["label", "colorToken", "style", "visibility", "iconTooltip"], outputs: ["itemClick"] }, { kind: "component", type: i5.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
286
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimeSeriesComponent, decorators: [{
|
|
287
287
|
type: Component,
|
|
288
288
|
args: [{ selector: 'riv-time-series', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <g *ngFor=\"let tick of d.x.xMajorTicks\">\n <rect\n class=\"tick\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n y=\"0\"\n width=\"1\"\n [attr.height]=\"d.y1.yScale(d.y1.yMin)\"\n ></rect>\n <text\n class=\"x-major-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n dx=\"4\"\n dy=\"-4\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.x.xMinorTicks\">\n <text\n class=\"x-minor-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n text-anchor=\"middle\"\n dominant-baseline=\"hanging\"\n dy=\"8\"\n >\n {{ tick.label }}\n <title>{{ tick.value | date }}</title>\n </text>\n </g>\n <g *ngFor=\"let tick of d.y1.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.y1.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"y-tick-label\" x=\"0\" [attr.y]=\"d.y1.yScale(tick)\" dy=\"-4\">\n {{ d.y1.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngFor=\"let tick of d.y2?.yTicks\">\n <text\n class=\"y-tick-label\"\n [attr.x]=\"d.x.xScale(d.x.xMax)\"\n [attr.y]=\"d.y2?.yScale(tick)\"\n text-anchor=\"end\"\n dy=\"-4\"\n >\n {{ d.y2?.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngIf=\"hoveredMarker$ | async; let hoveredMarker\">\n <line\n class=\"hover-rule\"\n [attr.x1]=\"hoveredMarker.marker.x\"\n [attr.y1]=\"d.y1.yScale(d.y1.yMin)\"\n [attr.x2]=\"hoveredMarker.marker.x\"\n [attr.y2]=\"d.y1.yScale(d.y1.yMax)\"\n stroke-width=\"2\"\n stroke-dasharray=\"4\"\n />\n </g>\n\n <ng-template #seriesTpl let-series=\"series\">\n <path\n class=\"data path\"\n [class.marker-hovered]=\"!!(hoveredMarker$ | async)\"\n [attr.d]=\"series.path\"\n fill=\"none\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n [attr.stroke-dasharray]=\"series.style === 'dashed' ? '4' : null\"\n ></path>\n <circle\n *ngFor=\"let marker of series.markers\"\n class=\"data marker\"\n [class.focused]=\"(hoveredMarker$ | async)?.marker?.x === marker.x\"\n [class.blurred]=\"\n (hoveredMarker$ | async) !== null &&\n (hoveredMarker$ | async)?.marker?.x !== marker.x\n \"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n r=\"3.5\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n (mouseover)=\"hoveredMarker$.next({ event: $event, marker: marker })\"\n (mouseleave)=\"hoveredMarker$.next(null)\"\n ></circle>\n </ng-template>\n <g *ngFor=\"let series of d.y1.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n <g *ngFor=\"let series of d.y2?.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n </svg>\n <legend>\n <riv-legend-item\n *ngFor=\"let item of legend$ | async\"\n [label]=\"item.label\"\n [colorToken]=\"item.colorToken\"\n ></riv-legend-item>\n </legend>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'top-center'\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:flex;flex-direction:column;gap:var(--size-xlarge)}.y-tick-label,.x-major-tick-label{font-size:var(--type-0-font-size);line-height:var(--type-0-line-height-0);fill:var(--type-light-low-contrast)}.x-minor-tick-label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);fill:var(--type-light-low-contrast);text-anchor:middle}.tick{fill:var(--gray-20)}.data.path{transition:stroke-opacity var(--short-transition)}.data.path.marker-hovered{stroke-opacity:.4}.data.marker{fill:var(--surface-light-0);transition:stroke-opacity var(--short-transition)}.data.marker.focused{stroke-opacity:1;filter:drop-shadow(0 1px 1px rgba(10,2,22,.15))}.data.marker.blurred{stroke-opacity:.4}.hover-rule{stroke:var(--gray-20)}legend{display:flex;flex-wrap:wrap;gap:var(--size-large);justify-content:flex-start;align-items:baseline}.callout-content{padding:var(--size-large);display:flex;gap:var(--size-medium)}.callout-metric{display:flex;flex-direction:column;gap:var(--size-xsmall);font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0)}.callout-metric-value{font-weight:var(--font-weight-heavy)}\n"] }]
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export * from './lib/content-toggle/text-toggle/text-toggle.component';
|
|
2
|
+
export * from './lib/format/pipes/days.pipe';
|
|
3
|
+
export * from './lib/format/pipes/number.pipe';
|
|
4
|
+
export * from './lib/format/pipes/percentage.pipe';
|
|
5
|
+
export * from './lib/format/pipes/small-currency.pipe';
|
|
2
6
|
export * from './lib/icon/icon.component';
|
|
3
7
|
export * from './lib/modal/callout/callout-outlet.component';
|
|
4
8
|
export * from './lib/modal/callout/callout.component';
|
|
5
9
|
export * from './lib/modal/callout/callout.directive';
|
|
10
|
+
export * from './lib/modal/tooltip/tooltip.component';
|
|
11
|
+
export * from './lib/modal/tooltip/tooltip.directive';
|
|
6
12
|
export * from './lib/riv.module';
|
|
7
13
|
export * from './lib/visualization/data-table/data-table-cell.component';
|
|
8
14
|
export * from './lib/visualization/data-table/data-table-header-cell.component';
|
|
@@ -14,4 +20,4 @@ export * from './lib/visualization/metric/metric.component';
|
|
|
14
20
|
export * from './lib/visualization/stacked-column/stacked-column.component';
|
|
15
21
|
export * from './lib/visualization/time-series/time-series.component';
|
|
16
22
|
export * from './lib/visualization/zero-state/zero-state.component';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHFEQUFxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGVudC10b2dnbGUvdGV4dC10b2dnbGUvdGV4dC10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1hdC9waXBlcy9kYXlzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0L3BpcGVzL251bWJlci5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1hdC9waXBlcy9wZXJjZW50YWdlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0L3BpcGVzL3NtYWxsLWN1cnJlbmN5LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC9jYWxsb3V0L2NhbGxvdXQtb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC9jYWxsb3V0L2NhbGxvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGFsL2NhbGxvdXQvY2FsbG91dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jpdi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLXJvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zpc3VhbGl6YXRpb24vZG9udXQvZG9udXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zpc3VhbGl6YXRpb24vbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zpc3VhbGl6YXRpb24vbWV0cmljL21ldHJpYy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi9zdGFja2VkLWNvbHVtbi9zdGFja2VkLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi90aW1lLXNlcmllcy90aW1lLXNlcmllcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi96ZXJvLXN0YXRlL3plcm8tc3RhdGUuY29tcG9uZW50JztcbiJdfQ==
|