igniteui-angular-extras 15.0.11
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/README.md +36 -0
- package/esm2020/igniteui-angular-extras.mjs +5 -0
- package/esm2020/images/charts.mjs +408 -0
- package/esm2020/images/conditions.mjs +95 -0
- package/esm2020/lib/context-menu/chart-dialog/chart-dialog.component.mjs +67 -0
- package/esm2020/lib/context-menu/context-menu.component.mjs +177 -0
- package/esm2020/lib/context-menu/igx-context-menu.directive.mjs +160 -0
- package/esm2020/lib/directives/chart-integration/chart-integration.directive.mjs +312 -0
- package/esm2020/lib/directives/chart-integration/chart-types.mjs +28 -0
- package/esm2020/lib/directives/chart-integration/initializers.mjs +103 -0
- package/esm2020/lib/directives/conditional-formatting/conditional-formatting.directive.mjs +311 -0
- package/esm2020/lib/igniteui-angular-extras.module.mjs +104 -0
- package/esm2020/lib/pipes/svg.pipe.mjs +20 -0
- package/esm2020/public-api.mjs +21 -0
- package/fesm2015/igniteui-angular-extras.mjs +1789 -0
- package/fesm2015/igniteui-angular-extras.mjs.map +1 -0
- package/fesm2020/igniteui-angular-extras.mjs +1782 -0
- package/fesm2020/igniteui-angular-extras.mjs.map +1 -0
- package/images/charts.d.ts +16 -0
- package/images/conditions.d.ts +10 -0
- package/index.d.ts +5 -0
- package/lib/context-menu/chart-dialog/chart-dialog.component.d.ts +31 -0
- package/lib/context-menu/context-menu.component.d.ts +38 -0
- package/lib/context-menu/igx-context-menu.directive.d.ts +33 -0
- package/lib/directives/chart-integration/chart-integration.directive.d.ts +52 -0
- package/lib/directives/chart-integration/chart-types.d.ts +25 -0
- package/lib/directives/chart-integration/initializers.d.ts +39 -0
- package/lib/directives/conditional-formatting/conditional-formatting.directive.d.ts +95 -0
- package/lib/igniteui-angular-extras.module.d.ts +14 -0
- package/lib/pipes/svg.pipe.d.ts +10 -0
- package/package.json +35 -0
- package/public-api.d.ts +17 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// tslint:disable: max-line-length
|
|
2
|
+
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { IgxBarSeriesComponent, IgxBubbleSeriesComponent, IgxCategoryXAxisComponent, IgxCategoryYAxisComponent, IgxNumericXAxisComponent, IgxNumericYAxisComponent, IgxScatterLineSeriesComponent, IgxScatterSeriesComponent, IgxStacked100BarSeriesComponent, IgxStackedBarSeriesComponent, IgxStackedFragmentSeriesComponent } from 'igniteui-angular-charts';
|
|
4
|
+
class SeriesFactory {
|
|
5
|
+
create(type) {
|
|
6
|
+
return new type();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ChartInitializer {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.seriesFactory = new SeriesFactory();
|
|
12
|
+
}
|
|
13
|
+
applyOptions(target, options) {
|
|
14
|
+
if (options) {
|
|
15
|
+
Object.keys(options).forEach(key => {
|
|
16
|
+
if (target[key] instanceof EventEmitter) {
|
|
17
|
+
target[key].subscribe(options[key]);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
target[key] = options[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class IgxPieChartInitializer extends ChartInitializer {
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
}
|
|
30
|
+
initChart(chart, options) {
|
|
31
|
+
this.applyOptions(chart, options.chartOptions);
|
|
32
|
+
return chart;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class IgxDataChartInitializer extends ChartInitializer {
|
|
36
|
+
constructor(seriesType) {
|
|
37
|
+
super();
|
|
38
|
+
switch (seriesType) {
|
|
39
|
+
case IgxBarSeriesComponent:
|
|
40
|
+
this.xAxis = new IgxNumericXAxisComponent();
|
|
41
|
+
this.yAxis = new IgxCategoryYAxisComponent();
|
|
42
|
+
break;
|
|
43
|
+
case IgxScatterSeriesComponent:
|
|
44
|
+
case IgxBubbleSeriesComponent:
|
|
45
|
+
case IgxScatterLineSeriesComponent:
|
|
46
|
+
this.xAxis = new IgxNumericXAxisComponent();
|
|
47
|
+
this.yAxis = new IgxNumericYAxisComponent();
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
this.xAxis = new IgxCategoryXAxisComponent();
|
|
51
|
+
this.yAxis = new IgxNumericYAxisComponent();
|
|
52
|
+
}
|
|
53
|
+
this.seriesType = seriesType;
|
|
54
|
+
}
|
|
55
|
+
initChart(chart, options) {
|
|
56
|
+
options.seriesOptions.forEach((option) => {
|
|
57
|
+
const series = this.seriesFactory.create(this.seriesType);
|
|
58
|
+
series.xAxis = this.xAxis;
|
|
59
|
+
series.yAxis = this.yAxis;
|
|
60
|
+
this.applyOptions(series, option);
|
|
61
|
+
chart.series.add(series);
|
|
62
|
+
});
|
|
63
|
+
this.applyOptions(chart, options.chartOptions);
|
|
64
|
+
this.applyOptions(this.xAxis, options.xAxisOptions);
|
|
65
|
+
this.applyOptions(this.yAxis, options.yAxisOptions);
|
|
66
|
+
chart.axes.add(this.xAxis);
|
|
67
|
+
chart.axes.add(this.yAxis);
|
|
68
|
+
return chart;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export class IgxStackedDataChartInitializer extends ChartInitializer {
|
|
72
|
+
constructor(seriesType) {
|
|
73
|
+
super();
|
|
74
|
+
if (seriesType === IgxStackedBarSeriesComponent || seriesType === IgxStacked100BarSeriesComponent) {
|
|
75
|
+
this.xAxis = new IgxNumericXAxisComponent();
|
|
76
|
+
this.yAxis = new IgxCategoryYAxisComponent();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.xAxis = new IgxCategoryXAxisComponent();
|
|
80
|
+
this.yAxis = new IgxNumericYAxisComponent();
|
|
81
|
+
}
|
|
82
|
+
this.seriesType = seriesType;
|
|
83
|
+
}
|
|
84
|
+
initChart(chart, options) {
|
|
85
|
+
const series = this.seriesFactory.create(this.seriesType);
|
|
86
|
+
series.xAxis = this.xAxis;
|
|
87
|
+
series.yAxis = this.yAxis;
|
|
88
|
+
options.stackedFragmentOptions.forEach(fragOpt => {
|
|
89
|
+
const frag = new IgxStackedFragmentSeriesComponent();
|
|
90
|
+
this.applyOptions(frag, fragOpt);
|
|
91
|
+
series.series.add(frag);
|
|
92
|
+
});
|
|
93
|
+
this.applyOptions(series, options.seriesOptions);
|
|
94
|
+
this.applyOptions(chart, options.chartOptions);
|
|
95
|
+
this.applyOptions(this.xAxis, options.xAxisOptions);
|
|
96
|
+
this.applyOptions(this.yAxis, options.yAxisOptions);
|
|
97
|
+
chart.series.add(series);
|
|
98
|
+
chart.axes.add(this.xAxis);
|
|
99
|
+
chart.axes.add(this.yAxis);
|
|
100
|
+
return chart;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9kaXJlY3RpdmVzL2NoYXJ0LWludGVncmF0aW9uL2luaXRpYWxpemVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQy9FLHlCQUF5QixFQUF5Qix3QkFBd0IsRUFDMUUsd0JBQXdCLEVBQXdCLDZCQUE2QixFQUM3RSx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSw0QkFBNEIsRUFDeEYsaUNBQWlDLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxNQUFNLGFBQWE7SUFDUixNQUFNLENBQUksSUFBbUI7UUFDaEMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQWVELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBSWxDO1FBRFUsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFVixZQUFZLENBQUMsTUFBVyxFQUFFLE9BQWlCO1FBQzlDLElBQUksT0FBTyxFQUFFO1lBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLFlBQVksRUFBRTtvQkFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdkM7cUJBQU07b0JBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDOUI7WUFDTCxDQUFD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QUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZ3hCYXJTZXJpZXNDb21wb25lbnQsIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudCwgSWd4Q2F0ZWdvcnlYQXhpc0NvbXBvbmVudCxcclxuICAgIElneENhdGVnb3J5WUF4aXNDb21wb25lbnQsIElneERhdGFDaGFydENvbXBvbmVudCwgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50LFxyXG4gICAgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50LCBJZ3hQaWVDaGFydENvbXBvbmVudCwgSWd4U2NhdHRlckxpbmVTZXJpZXNDb21wb25lbnQsXHJcbiAgICBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkMTAwQmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkQmFyU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4U3RhY2tlZEZyYWdtZW50U2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5cclxuY2xhc3MgU2VyaWVzRmFjdG9yeSB7XHJcbiAgICBwdWJsaWMgY3JlYXRlPFQ+KHR5cGU6IChuZXcgKCkgPT4gVCkpOiBUIHtcclxuICAgICAgICByZXR1cm4gbmV3IHR5cGUoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyB7XHJcbiAgICAgY2hhcnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzT3B0aW9ucz86IElPcHRpb25zW107XHJcbiAgICAgeEF4aXNPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzTW9kZWw/OiBJT3B0aW9ucztcclxuICAgICB5QXhpc09wdGlvbnM/OiBJT3B0aW9ucztcclxuICAgICBzdGFja2VkRnJhZ21lbnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGFydEluaXRpYWxpemVyIHtcclxuICAgIHByb3RlY3RlZCB5QXhpcztcclxuICAgIHByb3RlY3RlZCB4QXhpcztcclxuICAgIHByb3RlY3RlZCBzZXJpZXNGYWN0b3J5ID0gbmV3IFNlcmllc0ZhY3RvcnkoKTtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgcHVibGljIGFwcGx5T3B0aW9ucyh0YXJnZXQ6IGFueSwgb3B0aW9uczogSU9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0W2tleV0gaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XS5zdWJzY3JpYmUob3B0aW9uc1trZXldKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBvcHRpb25zW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgaW5pdENoYXJ0KGNoYXJ0OiBhbnksIG9wdGlvbnM/OiBJQ2hhcnRDb21wb25lbnRPcHRpb25zKTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4UGllQ2hhcnRJbml0aWFsaXplciBleHRlbmRzIENoYXJ0SW5pdGlhbGl6ZXIge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hQaWVDaGFydENvbXBvbmVudCwgb3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElneERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgc3dpdGNoIChzZXJpZXNUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSWd4QmFyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICAgICAgdGhpcy54QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnlBeGlzID0gIG5ldyBJZ3hDYXRlZ29yeVlBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICBjYXNlIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyTGluZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy55QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneENhdGVnb3J5WEF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMueUF4aXMgPSAgbmV3IElneE51bWVyaWNZQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXJpZXNUeXBlID0gc2VyaWVzVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQsIG9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMpOiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQge1xyXG4gICAgICAgIG9wdGlvbnMuc2VyaWVzT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgICAgICBzZXJpZXMueEF4aXMgPSB0aGlzLnhBeGlzO1xyXG4gICAgICAgICAgICBzZXJpZXMueUF4aXMgPSB0aGlzLnlBeGlzO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhzZXJpZXMsIG9wdGlvbik7XHJcbiAgICAgICAgICAgIGNoYXJ0LnNlcmllcy5hZGQoc2VyaWVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy54QXhpcyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy55QXhpcyk7XHJcbiAgICAgICAgcmV0dXJuIGNoYXJ0O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4U3RhY2tlZERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKHNlcmllc1R5cGUgPT09IElneFN0YWNrZWRCYXJTZXJpZXNDb21wb25lbnQgfHwgc2VyaWVzVHlwZSA9PT0gSWd4U3RhY2tlZDEwMEJhclNlcmllc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnhBeGlzID0gbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLnlBeGlzID0gbmV3IElneENhdGVnb3J5WUF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy54QXhpcyA9IG5ldyBJZ3hDYXRlZ29yeVhBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMueUF4aXMgPSBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlcmllc1R5cGUgPSBzZXJpZXNUeXBlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGluaXRDaGFydChjaGFydDogSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBvcHRpb25zPzogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyk6IElneERhdGFDaGFydENvbXBvbmVudCB7XHJcbiAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgIHNlcmllcy54QXhpcyA9IHRoaXMueEF4aXM7XHJcbiAgICAgICAgc2VyaWVzLnlBeGlzID0gdGhpcy55QXhpcztcclxuICAgICAgICBvcHRpb25zLnN0YWNrZWRGcmFnbWVudE9wdGlvbnMuZm9yRWFjaChmcmFnT3B0ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZnJhZyA9IG5ldyBJZ3hTdGFja2VkRnJhZ21lbnRTZXJpZXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseU9wdGlvbnMoZnJhZywgZnJhZ09wdCk7XHJcbiAgICAgICAgICAgIHNlcmllcy5zZXJpZXMuYWRkKGZyYWcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHNlcmllcywgb3B0aW9ucy5zZXJpZXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuc2VyaWVzLmFkZChzZXJpZXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueEF4aXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueUF4aXMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { IgxGridComponent } from '@infragistics/igniteui-angular';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@infragistics/igniteui-angular";
|
|
7
|
+
export var ConditionalFormattingType;
|
|
8
|
+
(function (ConditionalFormattingType) {
|
|
9
|
+
ConditionalFormattingType["dataBars"] = "Data Bars";
|
|
10
|
+
ConditionalFormattingType["colorScale"] = "Color Scale";
|
|
11
|
+
ConditionalFormattingType["top10"] = "Top 10";
|
|
12
|
+
ConditionalFormattingType["textContains"] = "Text Contains";
|
|
13
|
+
ConditionalFormattingType["single"] = "Duplicate Values";
|
|
14
|
+
ConditionalFormattingType["unique"] = "Unique Values";
|
|
15
|
+
ConditionalFormattingType["empty"] = "Empty";
|
|
16
|
+
})(ConditionalFormattingType || (ConditionalFormattingType = {}));
|
|
17
|
+
export class IgxConditionalFormattingDirective {
|
|
18
|
+
set formatColors(val) {
|
|
19
|
+
this._formatColors = val;
|
|
20
|
+
}
|
|
21
|
+
get formatColors() {
|
|
22
|
+
return this._formatColors;
|
|
23
|
+
}
|
|
24
|
+
get selectedData() {
|
|
25
|
+
if (!this._selectedData.length) {
|
|
26
|
+
this._selectedData = this.toArray(this.grid.getSelectedData());
|
|
27
|
+
}
|
|
28
|
+
return this._selectedData;
|
|
29
|
+
}
|
|
30
|
+
get textData() {
|
|
31
|
+
return this.selectedData.filter(val => typeof val === 'string');
|
|
32
|
+
}
|
|
33
|
+
get numericData() {
|
|
34
|
+
return this.selectedData.filter(val => typeof val === 'number');
|
|
35
|
+
}
|
|
36
|
+
constructor(grid) {
|
|
37
|
+
this.grid = grid;
|
|
38
|
+
this.onFormattersReady = new EventEmitter();
|
|
39
|
+
this.colorScale = {
|
|
40
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
41
|
+
if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
return this.lowTresholdValue >= cellValue ? this.formatColors.error :
|
|
45
|
+
this.middleTresholdValue >= cellValue ? this.formatColors.warning : this.formatColors.success;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
this.dataBars = {
|
|
49
|
+
backgroundImage: (rowData, colname, cellValue, rowIndex) => {
|
|
50
|
+
if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const treshold = this.threshold;
|
|
54
|
+
let gradientPercents;
|
|
55
|
+
if (cellValue < 0) {
|
|
56
|
+
const negativeStartingPoint = 100 - treshold;
|
|
57
|
+
gradientPercents = this.getNegativePercentage(cellValue);
|
|
58
|
+
return `linear-gradient(to left, transparent 0% ${negativeStartingPoint}%,
|
|
59
|
+
${this.formatColors.error} ${negativeStartingPoint}% ${negativeStartingPoint + gradientPercents}%,
|
|
60
|
+
transparent ${gradientPercents}% 100%)`;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
gradientPercents = this.getPositivePercentage(cellValue);
|
|
64
|
+
return `linear-gradient(to right, transparent 0% ${treshold}%,
|
|
65
|
+
${this.formatColors.success} ${treshold}% ${treshold + gradientPercents}%,
|
|
66
|
+
transparent ${treshold + gradientPercents}% 100%)`;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
backgroundSize: '100% 80%',
|
|
70
|
+
backgroundRepeat: 'no-repeat',
|
|
71
|
+
backgroundPositionY: 'center'
|
|
72
|
+
};
|
|
73
|
+
this.top10Percent = {
|
|
74
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
75
|
+
if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)
|
|
76
|
+
&& cellValue > this.top10PercentTreshold) {
|
|
77
|
+
return this.formatColors.info;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
81
|
+
if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)
|
|
82
|
+
&& cellValue > this.top10PercentTreshold) {
|
|
83
|
+
return this.formatColors.text;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
this.greaterThan = {
|
|
88
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
89
|
+
if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)
|
|
90
|
+
&& cellValue > this.avgValue) {
|
|
91
|
+
return this.formatColors.info;
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
95
|
+
if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)
|
|
96
|
+
&& cellValue > this.avgValue) {
|
|
97
|
+
return this.formatColors.text;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
this.empty = {
|
|
102
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
103
|
+
if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {
|
|
104
|
+
return this.formatColors.info;
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
108
|
+
if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {
|
|
109
|
+
return this.formatColors.text;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
this.duplicates = {
|
|
114
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
115
|
+
if (!this.isWithInFormattedRange(rowIndex, colname)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const arr = typeof cellValue === 'number' ? this.numericData : this.textData;
|
|
119
|
+
return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.info : '';
|
|
120
|
+
},
|
|
121
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
122
|
+
if (!this.isWithInFormattedRange(rowIndex, colname)) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const arr = typeof cellValue === 'number' ? this.numericData : this.textData;
|
|
126
|
+
return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.text : '';
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
this.textContains = {
|
|
130
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
131
|
+
if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&
|
|
132
|
+
cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {
|
|
133
|
+
return this.formatColors.info;
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
137
|
+
if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&
|
|
138
|
+
cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {
|
|
139
|
+
return this.formatColors.text;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
this.uniques = {
|
|
144
|
+
backgroundColor: (rowData, colname, cellValue, rowIndex) => {
|
|
145
|
+
if (!this.isWithInFormattedRange(rowIndex, colname)) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const arr = typeof cellValue === 'number' ? this.numericData : this.textData;
|
|
149
|
+
return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.info : '';
|
|
150
|
+
},
|
|
151
|
+
color: (rowData, colname, cellValue, rowIndex) => {
|
|
152
|
+
if (!this.isWithInFormattedRange(rowIndex, colname)) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const arr = typeof cellValue === 'number' ? this.numericData : this.textData;
|
|
156
|
+
return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.text : '';
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
this._formatColors = {
|
|
160
|
+
success: '#4EB862',
|
|
161
|
+
error: '#FF134A',
|
|
162
|
+
warning: '#FBB13C',
|
|
163
|
+
info: '#1377D5',
|
|
164
|
+
text: '#FFF'
|
|
165
|
+
};
|
|
166
|
+
this._numericFormatters = ['Data Bars', 'Color Scale', 'Top 10', 'Greater Than'];
|
|
167
|
+
this._textFormatters = ['Text Contains'];
|
|
168
|
+
this._commonFormattersName = ['Duplicate Values', 'Unique Values', 'Empty'];
|
|
169
|
+
this._selectedData = [];
|
|
170
|
+
this._formattersData = new Map();
|
|
171
|
+
this.destroy$ = new Subject();
|
|
172
|
+
this.formatedRange = new Map();
|
|
173
|
+
this._formattersData.set('Data Bars', this.dataBars);
|
|
174
|
+
this._formattersData.set('Color Scale', this.colorScale);
|
|
175
|
+
this._formattersData.set('Top 10', this.top10Percent);
|
|
176
|
+
this._formattersData.set('Greater Than', this.greaterThan);
|
|
177
|
+
this._formattersData.set('Text Contains', this.textContains);
|
|
178
|
+
this._formattersData.set('Duplicate Values', this.duplicates);
|
|
179
|
+
this._formattersData.set('Unique Values', this.uniques);
|
|
180
|
+
this._formattersData.set('Empty', this.empty);
|
|
181
|
+
}
|
|
182
|
+
ngAfterViewInit() {
|
|
183
|
+
this.grid.rangeSelected.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
184
|
+
this.determineFormatters();
|
|
185
|
+
});
|
|
186
|
+
this.grid.cellEdit.pipe(takeUntil(this.destroy$)).subscribe((args) => {
|
|
187
|
+
if ((args.newValue === args.oldValue || !this.formatter)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (this.isWithInFormattedRange(args.cellID.rowIndex, args.cellID.columnID - 1)) {
|
|
191
|
+
const value = Number(args.newValue);
|
|
192
|
+
const valueToBeAdded = !Number.isNaN(value) && Number.isFinite(value) ? value : args.newValue;
|
|
193
|
+
this.selectedData.splice(this.selectedData.indexOf(args.oldValue), 1, valueToBeAdded);
|
|
194
|
+
this.recalcCachedValues();
|
|
195
|
+
this.formatCells(this.formatter, undefined, false);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
ngOnDestroy() {
|
|
200
|
+
this.destroy$.next(true);
|
|
201
|
+
this.destroy$.complete();
|
|
202
|
+
}
|
|
203
|
+
formatCells(formatterName, formatRange, reset = true) {
|
|
204
|
+
if (reset) {
|
|
205
|
+
this.resetRange(formatRange);
|
|
206
|
+
}
|
|
207
|
+
this.clearFormatting();
|
|
208
|
+
this.formatter = formatterName;
|
|
209
|
+
this.grid.visibleColumns.forEach(c => {
|
|
210
|
+
if (c.visibleIndex >= this._startColumn && c.visibleIndex <= this._endColumn) {
|
|
211
|
+
c.cellStyles = this._formattersData.get(this.formatter);
|
|
212
|
+
this.grid.notifyChanges();
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
clearFormatting() {
|
|
217
|
+
this.formatter = undefined;
|
|
218
|
+
this.grid.visibleColumns.forEach(c => {
|
|
219
|
+
c.cellStyles = undefined;
|
|
220
|
+
this.grid.cdr.detectChanges();
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
determineFormatters() {
|
|
224
|
+
const numericData = this.toArray(this.grid.getSelectedData()).some(rec => typeof rec === 'number');
|
|
225
|
+
const textData = this.toArray(this.grid.getSelectedData()).some(rec => typeof rec === 'string');
|
|
226
|
+
const formatters = Array.of(...this._commonFormattersName);
|
|
227
|
+
if (!(numericData) && textData) {
|
|
228
|
+
formatters.splice(0, 0, ...this._textFormatters);
|
|
229
|
+
}
|
|
230
|
+
else if (numericData && !textData) {
|
|
231
|
+
formatters.splice(0, 0, ...this._numericFormatters);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
formatters.splice(0, 0, ...['Data Bars', 'Color Scale', 'Text Contains']);
|
|
235
|
+
}
|
|
236
|
+
this.onFormattersReady.emit(formatters);
|
|
237
|
+
}
|
|
238
|
+
recalcCachedValues(clearAll = false) {
|
|
239
|
+
if (clearAll) {
|
|
240
|
+
this._startColumn = Math.min(...this.grid.getSelectedRanges().map(r => Number(r.columnStart)));
|
|
241
|
+
this._endColumn = Math.max(...this.grid.getSelectedRanges().map(r => Number(r.columnEnd)));
|
|
242
|
+
this._selectedData = [];
|
|
243
|
+
}
|
|
244
|
+
this._valueForComparison = this.textData[0];
|
|
245
|
+
this._maxValue = Math.max(...this.numericData);
|
|
246
|
+
this._minValue = Math.min(...this.numericData.filter(value => value < 0)) | 0;
|
|
247
|
+
}
|
|
248
|
+
isWithInFormattedRange(rowIndex, colID) {
|
|
249
|
+
const visibleIndex = typeof colID === 'string' ? this.grid.getColumnByName(colID).visibleIndex : colID;
|
|
250
|
+
if (!this.formatedRange.size) {
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
return this.formatedRange.has(rowIndex) && this.formatedRange.get(rowIndex).has(visibleIndex);
|
|
254
|
+
}
|
|
255
|
+
get middleTresholdValue() { return 0.66 * Math.ceil(this._maxValue); }
|
|
256
|
+
get lowTresholdValue() { return 0.33 * Math.ceil(this._maxValue); }
|
|
257
|
+
get top10PercentTreshold() { return 0.9 * Math.ceil(this._maxValue); }
|
|
258
|
+
get avgValue() {
|
|
259
|
+
return Math.ceil((this.numericData.reduce((a, b) => a + b, 0)) / this.numericData.length);
|
|
260
|
+
}
|
|
261
|
+
get threshold() {
|
|
262
|
+
return Math.ceil(Math.abs(this._minValue) / (this._maxValue + Math.abs(this._minValue)) * 100);
|
|
263
|
+
}
|
|
264
|
+
getPositivePercentage(val) {
|
|
265
|
+
const result = (Math.ceil(val) / (this._maxValue + Math.abs(this._minValue))) * 100;
|
|
266
|
+
return Math.ceil(result);
|
|
267
|
+
}
|
|
268
|
+
getNegativePercentage(val) {
|
|
269
|
+
const result = (Math.abs(val) / (this._maxValue + Math.abs(this._minValue))) * 100;
|
|
270
|
+
return Math.ceil(result);
|
|
271
|
+
}
|
|
272
|
+
resetRange(formatRange) {
|
|
273
|
+
this.formatedRange.clear();
|
|
274
|
+
const customRange = formatRange ? formatRange : this.grid.getSelectedRanges();
|
|
275
|
+
customRange.forEach(range => {
|
|
276
|
+
for (let ri = range.rowStart; ri <= Number(range.rowEnd); ri++) {
|
|
277
|
+
for (let ci = Number(range.columnStart); ci <= Number(range.columnEnd); ci++) {
|
|
278
|
+
this.addToCache(ri, ci);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
this.recalcCachedValues(true);
|
|
283
|
+
}
|
|
284
|
+
addToCache(rowIndex, colIndex, selection = true) {
|
|
285
|
+
this.formatedRange.has(rowIndex) ? this.formatedRange.get(rowIndex).add(colIndex) :
|
|
286
|
+
this.formatedRange.set(rowIndex, new Set()).get(rowIndex).add(colIndex);
|
|
287
|
+
}
|
|
288
|
+
toArray(data) {
|
|
289
|
+
let result = [];
|
|
290
|
+
data.forEach(rec => result = result.concat(Object.values(rec)));
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
IgxConditionalFormattingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
295
|
+
IgxConditionalFormattingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 });
|
|
296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
|
|
297
|
+
type: Directive,
|
|
298
|
+
args: [{
|
|
299
|
+
selector: '[igxConditionalFormatting]'
|
|
300
|
+
}]
|
|
301
|
+
}], ctorParameters: function () { return [{ type: i1.IgxGridComponent, decorators: [{
|
|
302
|
+
type: Inject,
|
|
303
|
+
args: [IgxGridComponent]
|
|
304
|
+
}] }]; }, propDecorators: { formatter: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], formatColors: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], onFormattersReady: [{
|
|
309
|
+
type: Output
|
|
310
|
+
}] } });
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUzQyxNQUFNLENBQU4sSUFBWSx5QkFRWDtBQVJELFdBQVkseUJBQXlCO0lBQ2pDLG1EQUFzQixDQUFBO0lBQ3RCLHVEQUEwQixDQUFBO0lBQzFCLDZDQUFnQixDQUFBO0lBQ2hCLDJEQUE4QixDQUFBO0lBQzlCLHdEQUEyQixDQUFBO0lBQzNCLHFEQUF3QixDQUFBO0lBQ3hCLDRDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVJXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFRcEM7QUFZRCxNQUFNLE9BQU8saUNBQWlDO0lBSTFDLElBQ1csWUFBWSxDQUFDLEdBQWtCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUF5SEQsSUFBWSxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUFFLElBQUksQ0FBQyxhQUFhLEdB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O1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFXO1FBQ3ZCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OEhBcFNRLGlDQUFpQyxrQkFtS3RCLGdCQUFnQjtrSEFuSzNCLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDOzswQkFvS2dCLE1BQU07MkJBQUMsZ0JBQWdCOzRDQWpLN0IsU0FBUztzQkFEZixLQUFLO2dCQUlLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBU0MsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElneEdyaWRDb21wb25lbnQgfSBmcm9tICdAaW5mcmFnaXN0aWNzL2lnbml0ZXVpLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBlbnVtIENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGUge1xyXG4gICAgZGF0YUJhcnMgPSAnRGF0YSBCYXJzJyxcclxuICAgIGNvbG9yU2NhbGUgPSAnQ29sb3IgU2NhbGUnLFxyXG4gICAgdG9wMTAgPSAnVG9wIDEwJyxcclxuICAgIHRleHRDb250YWlucyA9ICdUZXh0IENvbnRhaW5zJyxcclxuICAgIHNpbmdsZSA9ICdEdXBsaWNhdGUgVmFsdWVzJyxcclxuICAgIHVuaXF1ZSA9ICdVbmlxdWUgVmFsdWVzJyxcclxuICAgIGVtcHR5ID0gJ0VtcHR5J1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdENvbG9ycyB7XHJcbiAgICBzdWNjZXNzOiBzdHJpbmc7XHJcbiAgICBlcnJvcjogc3RyaW5nO1xyXG4gICAgaW5mbzogc3RyaW5nO1xyXG4gICAgd2FybmluZzogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2lneENvbmRpdGlvbmFsRm9ybWF0dGluZ10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IHN0cmluZyB8IENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZm9ybWF0Q29sb3JzKHZhbDogSUZvcm1hdENvbG9ycykgIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXRDb2xvcnMgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdENvbG9ycygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0Q29sb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9uRm9ybWF0dGVyc1JlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBwdWJsaWMgY29sb3JTY2FsZSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb3dUcmVzaG9sZFZhbHVlID49IGNlbGxWYWx1ZSA/IHRoaXMuZm9ybWF0Q29sb3JzLmVycm9yIDpcclxuICAgICAgICAgICAgICAgIHRoaXMubWlkZGxlVHJlc2hvbGRWYWx1ZSA+PSBjZWxsVmFsdWUgPyB0aGlzLmZvcm1hdENvbG9ycy53YXJuaW5nIDogIHRoaXMuZm9ybWF0Q29sb3JzLnN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZGF0YUJhcnMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoISh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgdHJlc2hvbGQgPSB0aGlzLnRocmVzaG9sZDtcclxuICAgICAgICAgICAgbGV0IGdyYWRpZW50UGVyY2VudHM7XHJcbiAgICAgICAgICAgIGlmIChjZWxsVmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZWdhdGl2ZVN0YXJ0aW5nUG9pbnQgPSAxMDAgLSB0cmVzaG9sZDtcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50UGVyY2VudHMgPSB0aGlzLmdldE5lZ2F0aXZlUGVyY2VudGFnZShjZWxsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQgMCUgJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSxcclxuICAgICAgICAgICAgICAgICAgICAkeyB0aGlzLmZvcm1hdENvbG9ycy5lcnJvcn0gJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSAke25lZ2F0aXZlU3RhcnRpbmdQb2ludCArIGdyYWRpZW50UGVyY2VudHN9JSxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAke2dyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmFkaWVudFBlcmNlbnRzID0gdGhpcy5nZXRQb3NpdGl2ZVBlcmNlbnRhZ2UoY2VsbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwJSAke3RyZXNob2xkfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgJHsgdGhpcy5mb3JtYXRDb2xvcnMuc3VjY2Vzc30gJHt0cmVzaG9sZH0lICR7dHJlc2hvbGQgKyBncmFkaWVudFBlcmNlbnRzfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgJHt0cmVzaG9sZCArIGdyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGJhY2tncm91bmRTaXplOiAnMTAwJSA4MCUnLFxyXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxyXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvblk6ICdjZW50ZXInXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyB0b3AxMFBlcmNlbnQgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy50b3AxMFBlcmNlbnRUcmVzaG9sZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMudG9wMTBQZXJjZW50VHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGdyZWF0ZXJUaGFuID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZW1wdHkgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJiBjZWxsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiYgY2VsbFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGR1cGxpY2F0ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dCA6ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHRleHRDb250YWlucyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHVuaXF1ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSA9PT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpID09PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0IDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGdldCBzZWxlY3RlZERhdGEoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZERhdGEubGVuZ3RoKSB7IHRoaXMuX3NlbGVjdGVkRGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpOyB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0ZXh0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHZhbCA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbnVtZXJpY0RhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcih2YWwgPT4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZm9ybWF0Q29sb3JzOiBJRm9ybWF0Q29sb3JzID0ge1xyXG4gICAgICAgIHN1Y2Nlc3M6ICcjNEVCODYyJyxcclxuICAgICAgICBlcnJvcjogJyNGRjEzNEEnLFxyXG4gICAgICAgIHdhcm5pbmc6ICcjRkJCMTNDJyxcclxuICAgICAgICBpbmZvOiAnIzEzNzdENScsXHJcbiAgICAgICAgdGV4dDogJyNGRkYnXHJcbiAgICB9O1xyXG4gICAgcHJpdmF0ZSBfbnVtZXJpY0Zvcm1hdHRlcnMgPSBbJ0RhdGEgQmFycycsICdDb2xvciBTY2FsZScsICdUb3AgMTAnLCAnR3JlYXRlciBUaGFuJ107XHJcbiAgICBwcml2YXRlIF90ZXh0Rm9ybWF0dGVycyA9IFsnVGV4dCBDb250YWlucyddO1xyXG4gICAgcHJpdmF0ZSBfY29tbW9uRm9ybWF0dGVyc05hbWUgPSBbJ0R1cGxpY2F0ZSBWYWx1ZXMnLCAnVW5pcXVlIFZhbHVlcycsICdFbXB0eSddO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICBwcml2YXRlIF9taW5WYWx1ZTtcclxuICAgIHByaXZhdGUgX21heFZhbHVlO1xyXG4gICAgcHJpdmF0ZSBfc3RhcnRDb2x1bW47XHJcbiAgICBwcml2YXRlIF9lbmRDb2x1bW47XHJcbiAgICBwcml2YXRlIF92YWx1ZUZvckNvbXBhcmlzb247XHJcbiAgICBwcml2YXRlIF9mb3JtYXR0ZXJzRGF0YSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBmb3JtYXRlZFJhbmdlOiBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4gPSBuZXcgTWFwPG51bWJlciwgU2V0PG51bWJlcj4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJZ3hHcmlkQ29tcG9uZW50KSBwdWJsaWMgZ3JpZDogSWd4R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRGF0YSBCYXJzJywgdGhpcy5kYXRhQmFycyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdDb2xvciBTY2FsZScsIHRoaXMuY29sb3JTY2FsZSk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdUb3AgMTAnLCB0aGlzLnRvcDEwUGVyY2VudCk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdHcmVhdGVyIFRoYW4nLCB0aGlzLmdyZWF0ZXJUaGFuKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1RleHQgQ29udGFpbnMnLCB0aGlzLnRleHRDb250YWlucyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdEdXBsaWNhdGUgVmFsdWVzJywgdGhpcy5kdXBsaWNhdGVzKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1VuaXF1ZSBWYWx1ZXMnLCB0aGlzLnVuaXF1ZXMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRW1wdHknLCB0aGlzLmVtcHR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ3JpZC5yYW5nZVNlbGVjdGVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRldGVybWluZUZvcm1hdHRlcnMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWQuY2VsbEVkaXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoYXJnczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICgoYXJncy5uZXdWYWx1ZSA9PT0gYXJncy5vbGRWYWx1ZSB8fCAhdGhpcy5mb3JtYXR0ZXIpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKGFyZ3MuY2VsbElELnJvd0luZGV4LCBhcmdzLmNlbGxJRC5jb2x1bW5JRCAtIDEpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihhcmdzLm5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9CZUFkZGVkID0gIU51bWJlci5pc05hTih2YWx1ZSkgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogYXJncy5uZXdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhLnNwbGljZSh0aGlzLnNlbGVjdGVkRGF0YS5pbmRleE9mKGFyZ3Mub2xkVmFsdWUpLCAxLCB2YWx1ZVRvQmVBZGRlZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY0NhY2hlZFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRDZWxscyh0aGlzLmZvcm1hdHRlciwgdW5kZWZpbmVkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9ybWF0Q2VsbHMoZm9ybWF0dGVyTmFtZSwgZm9ybWF0UmFuZ2U/OiBbXSwgcmVzZXQgPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHJlc2V0KSB7IHRoaXMucmVzZXRSYW5nZShmb3JtYXRSYW5nZSk7IH1cclxuICAgICAgICB0aGlzLmNsZWFyRm9ybWF0dGluZygpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyTmFtZTtcclxuICAgICAgICB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgaWYgKGMudmlzaWJsZUluZGV4ID49IHRoaXMuX3N0YXJ0Q29sdW1uICYmIGMudmlzaWJsZUluZGV4IDw9IHRoaXMuX2VuZENvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgYy5jZWxsU3R5bGVzID0gdGhpcy5fZm9ybWF0dGVyc0RhdGEuZ2V0KHRoaXMuZm9ybWF0dGVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5ub3RpZnlDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJGb3JtYXR0aW5nKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZ3JpZC52aXNpYmxlQ29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICBjLmNlbGxTdHlsZXMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZXRlcm1pbmVGb3JtYXR0ZXJzKCkge1xyXG4gICAgICAgIGNvbnN0IG51bWVyaWNEYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ251bWJlcicpO1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ3N0cmluZycpO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlcnMgPSAgQXJyYXkub2YoLi4udGhpcy5fY29tbW9uRm9ybWF0dGVyc05hbWUpO1xyXG4gICAgICAgIGlmICghKG51bWVyaWNEYXRhKSAmJiB0ZXh0RGF0YSkge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXJzLnNwbGljZSgwLCAwLCAuLi50aGlzLl90ZXh0Rm9ybWF0dGVycyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW1lcmljRGF0YSAmJiAhdGV4dERhdGEpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVycy5zcGxpY2UoMCwgMCwgLi4udGhpcy5fbnVtZXJpY0Zvcm1hdHRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcnMuc3BsaWNlKDAsIDAsIC4uLlsnRGF0YSBCYXJzJywgJ0NvbG9yIFNjYWxlJywgJ1RleHQgQ29udGFpbnMnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25Gb3JtYXR0ZXJzUmVhZHkuZW1pdChmb3JtYXR0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjYWxjQ2FjaGVkVmFsdWVzKGNsZWFyQWxsID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAoY2xlYXJBbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRDb2x1bW4gPSBNYXRoLm1pbiguLi50aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKS5tYXAociA9PiBOdW1iZXIoci5jb2x1bW5TdGFydCkpKTtcclxuICAgICAgICAgICAgdGhpcy5fZW5kQ29sdW1uID0gTWF0aC5tYXgoLi4udGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCkubWFwKHIgPT4gTnVtYmVyKHIuY29sdW1uRW5kKSkpO1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdmFsdWVGb3JDb21wYXJpc29uID0gdGhpcy50ZXh0RGF0YVswXTtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnRoaXMubnVtZXJpY0RhdGEpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlID0gTWF0aC5taW4oLi4udGhpcy5udW1lcmljRGF0YS5maWx0ZXIodmFsdWUgPT4gdmFsdWUgPCAwKSkgfCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xJRCkge1xyXG4gICAgICAgIGNvbnN0IHZpc2libGVJbmRleCA9IHR5cGVvZiBjb2xJRCA9PT0gJ3N0cmluZycgPyB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKGNvbElEKS52aXNpYmxlSW5kZXggOiBjb2xJRDtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybWF0ZWRSYW5nZS5zaXplKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSAmJiB0aGlzLmZvcm1hdGVkUmFuZ2UuZ2V0KHJvd0luZGV4KS5oYXModmlzaWJsZUluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBtaWRkbGVUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC42NiAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBsb3dUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC4zMyAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0b3AxMFBlcmNlbnRUcmVzaG9sZCgpIHsgcmV0dXJuIDAuOSAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBhdmdWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm51bWVyaWNEYXRhLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApKSAvIHRoaXMubnVtZXJpY0RhdGEubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0aHJlc2hvbGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpICogMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBvc2l0aXZlUGVyY2VudGFnZSh2YWwpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAoTWF0aC5jZWlsKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXROZWdhdGl2ZVBlcmNlbnRhZ2UodmFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKE1hdGguYWJzKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFJhbmdlKGZvcm1hdFJhbmdlPzogW10pIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBjdXN0b21SYW5nZSA9IGZvcm1hdFJhbmdlID8gZm9ybWF0UmFuZ2UgOiB0aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKTtcclxuICAgICAgICBjdXN0b21SYW5nZS5mb3JFYWNoKHJhbmdlID0+IHtcclxuICAgICAgICAgICAgZm9yIChsZXQgcmkgPSByYW5nZS5yb3dTdGFydDsgcmkgPD0gTnVtYmVyKHJhbmdlLnJvd0VuZCk7IHJpKyspIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGNpID0gTnVtYmVyKHJhbmdlLmNvbHVtblN0YXJ0KTsgY2kgPD0gTnVtYmVyKHJhbmdlLmNvbHVtbkVuZCk7IGNpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRvQ2FjaGUocmksIGNpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVjYWxjQ2FjaGVkVmFsdWVzKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkVG9DYWNoZShyb3dJbmRleCwgY29sSW5kZXgsIHNlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSA/IHRoaXMuZm9ybWF0ZWRSYW5nZS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCkgOlxyXG4gICAgICAgIHRoaXMuZm9ybWF0ZWRSYW5nZS5zZXQocm93SW5kZXgsIG5ldyBTZXQ8bnVtYmVyPigpKS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b0FycmF5KGRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaChyZWMgPT4gcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChPYmplY3QudmFsdWVzKHJlYykpKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
+
// tslint:disable-next-line: max-line-length
|
|
3
|
+
import { IgxButtonModule, IgxDividerModule, IgxGridModule, IgxTabsModule, IgxToggleModule, IgxIconModule } from '@infragistics/igniteui-angular';
|
|
4
|
+
import { IgxBarSeriesModule, IgxCategoryChartModule, IgxCategoryXAxisModule, IgxDataChartCategoryModule, IgxDataChartCoreModule, IgxDataChartInteractivityModule, IgxDataChartScatterModule, IgxDataChartStackedModule, IgxItemLegendModule, IgxLegendModule, IgxNumericXAxisModule, IgxNumericYAxisModule } from 'igniteui-angular-charts';
|
|
5
|
+
import { IgxPieChartModule } from 'igniteui-angular-charts';
|
|
6
|
+
import { IgxChartMenuComponent } from './context-menu/chart-dialog/chart-dialog.component';
|
|
7
|
+
import { IgxContextMenuComponent } from './context-menu/context-menu.component';
|
|
8
|
+
import { IgxContextMenuDirective } from './context-menu/igx-context-menu.directive';
|
|
9
|
+
import { IgxChartIntegrationDirective } from './directives/chart-integration/chart-integration.directive';
|
|
10
|
+
import { IgxConditionalFormattingDirective } from './directives/conditional-formatting/conditional-formatting.directive';
|
|
11
|
+
import { SvgPipe } from './pipes/svg.pipe';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class IgxExtrasModule {
|
|
14
|
+
}
|
|
15
|
+
IgxExtrasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
|
|
17
|
+
IgxChartIntegrationDirective,
|
|
18
|
+
IgxContextMenuDirective,
|
|
19
|
+
IgxContextMenuComponent,
|
|
20
|
+
IgxChartMenuComponent,
|
|
21
|
+
SvgPipe], imports: [IgxButtonModule,
|
|
22
|
+
IgxDividerModule,
|
|
23
|
+
IgxGridModule,
|
|
24
|
+
IgxTabsModule,
|
|
25
|
+
IgxToggleModule,
|
|
26
|
+
IgxDataChartCategoryModule,
|
|
27
|
+
IgxDataChartCoreModule,
|
|
28
|
+
IgxLegendModule,
|
|
29
|
+
IgxDataChartInteractivityModule,
|
|
30
|
+
IgxNumericXAxisModule,
|
|
31
|
+
IgxNumericYAxisModule,
|
|
32
|
+
IgxCategoryXAxisModule,
|
|
33
|
+
IgxItemLegendModule,
|
|
34
|
+
IgxPieChartModule,
|
|
35
|
+
IgxDataChartStackedModule,
|
|
36
|
+
IgxDividerModule,
|
|
37
|
+
IgxDataChartScatterModule,
|
|
38
|
+
IgxBarSeriesModule,
|
|
39
|
+
IgxIconModule,
|
|
40
|
+
IgxCategoryChartModule], exports: [IgxConditionalFormattingDirective,
|
|
41
|
+
IgxChartIntegrationDirective,
|
|
42
|
+
IgxContextMenuDirective] });
|
|
43
|
+
IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
|
|
44
|
+
IgxDividerModule,
|
|
45
|
+
IgxGridModule,
|
|
46
|
+
IgxTabsModule,
|
|
47
|
+
IgxToggleModule,
|
|
48
|
+
IgxDataChartCategoryModule,
|
|
49
|
+
IgxDataChartCoreModule,
|
|
50
|
+
IgxLegendModule,
|
|
51
|
+
IgxDataChartInteractivityModule,
|
|
52
|
+
IgxNumericXAxisModule,
|
|
53
|
+
IgxNumericYAxisModule,
|
|
54
|
+
IgxCategoryXAxisModule,
|
|
55
|
+
IgxItemLegendModule,
|
|
56
|
+
IgxPieChartModule,
|
|
57
|
+
IgxDataChartStackedModule,
|
|
58
|
+
IgxDividerModule,
|
|
59
|
+
IgxDataChartScatterModule,
|
|
60
|
+
IgxBarSeriesModule,
|
|
61
|
+
IgxIconModule,
|
|
62
|
+
IgxCategoryChartModule] });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, decorators: [{
|
|
64
|
+
type: NgModule,
|
|
65
|
+
args: [{
|
|
66
|
+
declarations: [
|
|
67
|
+
IgxConditionalFormattingDirective,
|
|
68
|
+
IgxChartIntegrationDirective,
|
|
69
|
+
IgxContextMenuDirective,
|
|
70
|
+
IgxContextMenuComponent,
|
|
71
|
+
IgxChartMenuComponent,
|
|
72
|
+
SvgPipe
|
|
73
|
+
],
|
|
74
|
+
imports: [
|
|
75
|
+
IgxButtonModule,
|
|
76
|
+
IgxDividerModule,
|
|
77
|
+
IgxGridModule,
|
|
78
|
+
IgxTabsModule,
|
|
79
|
+
IgxToggleModule,
|
|
80
|
+
IgxDataChartCategoryModule,
|
|
81
|
+
IgxDataChartCoreModule,
|
|
82
|
+
IgxLegendModule,
|
|
83
|
+
IgxDataChartInteractivityModule,
|
|
84
|
+
IgxNumericXAxisModule,
|
|
85
|
+
IgxNumericYAxisModule,
|
|
86
|
+
IgxCategoryXAxisModule,
|
|
87
|
+
IgxItemLegendModule,
|
|
88
|
+
IgxPieChartModule,
|
|
89
|
+
IgxDataChartStackedModule,
|
|
90
|
+
IgxDividerModule,
|
|
91
|
+
IgxDataChartScatterModule,
|
|
92
|
+
IgxBarSeriesModule,
|
|
93
|
+
IgxIconModule,
|
|
94
|
+
IgxCategoryChartModule
|
|
95
|
+
],
|
|
96
|
+
exports: [
|
|
97
|
+
IgxConditionalFormattingDirective,
|
|
98
|
+
IgxChartIntegrationDirective,
|
|
99
|
+
IgxContextMenuDirective
|
|
100
|
+
],
|
|
101
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
102
|
+
}]
|
|
103
|
+
}] });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWduaXRldWktYW5ndWxhci1leHRyYXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQ3ZFLDBCQUEwQixFQUF5QixzQkFBc0IsRUFDekUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCLEVBQzdELG1CQUFtQixFQUFzQixlQUFlLEVBQ2hGLHFCQUFxQixFQUFFLHFCQUFxQixFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUEwQzNDLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBcENwQixpQ0FBaUM7UUFDakMsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLE9BQU8sYUFHUCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCLGFBR3RCLGlDQUFpQztRQUNqQyw0QkFBNEI7UUFDNUIsdUJBQXVCOzZHQUlsQixlQUFlLFlBNUJwQixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCOzJGQVNqQixlQUFlO2tCQXRDM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLE9BQU87cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZiwrQkFBK0I7d0JBQy9CLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isc0JBQXNCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLENBQUU7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHsgSWd4QnV0dG9uTW9kdWxlLCBJZ3hEaXZpZGVyTW9kdWxlLCBJZ3hHcmlkTW9kdWxlLCBJZ3hUYWJzTW9kdWxlLCBJZ3hUb2dnbGVNb2R1bGUsIElneEljb25Nb2R1bGUgfSBmcm9tICdAaW5mcmFnaXN0aWNzL2lnbml0ZXVpLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBJZ3hCYXJTZXJpZXNNb2R1bGUsIElneENhdGVnb3J5Q2hhcnRNb2R1bGUsIElneENhdGVnb3J5WEF4aXNNb2R1bGUsXHJcbiAgICBJZ3hEYXRhQ2hhcnRDYXRlZ29yeU1vZHVsZSwgSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBJZ3hEYXRhQ2hhcnRDb3JlTW9kdWxlLFxyXG4gICAgSWd4RGF0YUNoYXJ0SW50ZXJhY3Rpdml0eU1vZHVsZSwgSWd4RGF0YUNoYXJ0U2NhdHRlck1vZHVsZSwgSWd4RGF0YUNoYXJ0U3RhY2tlZE1vZHVsZSxcclxuICAgIElneEl0ZW1MZWdlbmRDb21wb25lbnQsIElneEl0ZW1MZWdlbmRNb2R1bGUsIElneExlZ2VuZENvbXBvbmVudCwgSWd4TGVnZW5kTW9kdWxlLFxyXG4gICAgSWd4TnVtZXJpY1hBeGlzTW9kdWxlLCBJZ3hOdW1lcmljWUF4aXNNb2R1bGUsIElneFBpZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBJZ3hQaWVDaGFydE1vZHVsZSB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgSWd4Q2hhcnRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUvY2hhcnQtZGlhbG9nL2NoYXJ0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJZ3hDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJZ3hDb250ZXh0TWVudURpcmVjdGl2ZSB9IGZyb20gJy4vY29udGV4dC1tZW51L2lneC1jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWd4Q2hhcnRJbnRlZ3JhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jaGFydC1pbnRlZ3JhdGlvbi9jaGFydC1pbnRlZ3JhdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN2Z1BpcGUgfSBmcm9tICcuL3BpcGVzL3N2Zy5waXBlJztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIElneENvbmRpdGlvbmFsRm9ybWF0dGluZ0RpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDaGFydEludGVncmF0aW9uRGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51RGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIElneENoYXJ0TWVudUNvbXBvbmVudCxcclxuICAgICAgICBTdmdQaXBlXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIElneEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBJZ3hEaXZpZGVyTW9kdWxlLFxyXG4gICAgICAgIElneEdyaWRNb2R1bGUsXHJcbiAgICAgICAgSWd4VGFic01vZHVsZSxcclxuICAgICAgICBJZ3hUb2dnbGVNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0Q2F0ZWdvcnlNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0Q29yZU1vZHVsZSxcclxuICAgICAgICBJZ3hMZWdlbmRNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0SW50ZXJhY3Rpdml0eU1vZHVsZSxcclxuICAgICAgICBJZ3hOdW1lcmljWEF4aXNNb2R1bGUsXHJcbiAgICAgICAgSWd4TnVtZXJpY1lBeGlzTW9kdWxlLFxyXG4gICAgICAgIElneENhdGVnb3J5WEF4aXNNb2R1bGUsXHJcbiAgICAgICAgSWd4SXRlbUxlZ2VuZE1vZHVsZSxcclxuICAgICAgICBJZ3hQaWVDaGFydE1vZHVsZSxcclxuICAgICAgICBJZ3hEYXRhQ2hhcnRTdGFja2VkTW9kdWxlLFxyXG4gICAgICAgIElneERpdmlkZXJNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0U2NhdHRlck1vZHVsZSxcclxuICAgICAgICBJZ3hCYXJTZXJpZXNNb2R1bGUsXHJcbiAgICAgICAgSWd4SWNvbk1vZHVsZSxcclxuICAgICAgICBJZ3hDYXRlZ29yeUNoYXJ0TW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIElneENvbmRpdGlvbmFsRm9ybWF0dGluZ0RpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDaGFydEludGVncmF0aW9uRGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51RGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc2NoZW1hczogWyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElneEV4dHJhc01vZHVsZSB7IH1cclxuIl19
|