@odx/angular 2.4.0 → 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/CHANGELOG.md +19 -0
- package/charts-config/README.md +3 -0
- package/charts-config/index.d.ts +3 -0
- package/charts-config/lib/charts-theme.directive.d.ts +10 -0
- package/charts-config/lib/charts-theme.module.d.ts +8 -0
- package/charts-config/lib/charts-theme.service.d.ts +60 -0
- package/esm2020/charts-config/index.mjs +4 -0
- package/esm2020/charts-config/lib/charts-theme.directive.mjs +27 -0
- package/esm2020/charts-config/lib/charts-theme.module.mjs +33 -0
- package/esm2020/charts-config/lib/charts-theme.service.mjs +114 -0
- package/esm2020/charts-config/odx-angular-charts-config.mjs +5 -0
- package/esm2020/lib/services/window-ref.mjs +25 -2
- package/esm2020/utils/lib/helpers/dom.mjs +13 -1
- package/fesm2015/odx-angular-charts-config.mjs +171 -0
- package/fesm2015/odx-angular-charts-config.mjs.map +1 -0
- package/fesm2015/odx-angular-utils.mjs +13 -1
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +24 -1
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-charts-config.mjs +171 -0
- package/fesm2020/odx-angular-charts-config.mjs.map +1 -0
- package/fesm2020/odx-angular-utils.mjs +13 -1
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +24 -1
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/lib/services/window-ref.d.ts +3 -0
- package/package.json +17 -3
- package/utils/lib/helpers/dom.d.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# @odx/angular 2.5.0 (2023-08-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* any ([c396297](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/c396297e2ae066ac385e7e9b301b29d1db6e3779))
|
|
7
|
+
* optional dependencies ([67733b4](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/67733b4ca075ab3bbe47f89f85debfcef76f0bf2))
|
|
8
|
+
* pie chart scales ([319228f](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/319228f300ea480506166a6c13aff9fe5e645338))
|
|
9
|
+
* pr issues ([a62bf0f](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/a62bf0f33a9604a663ecc5b2edf7d45f98807632))
|
|
10
|
+
* unit test for getCSSColorStyles ([b3ee9cf](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/b3ee9cf2a96cddb5c881d15230fd42b177f48d0e))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* chart theme directive ([1ec10f2](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/1ec10f2cf18a1410726a38f672dacc8f7d416f33))
|
|
16
|
+
* naming and structure ([12783e9](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/12783e941140fdfe097535493e05e9d46634852d))
|
|
17
|
+
* new story for echarts library ([6fd7015](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/6fd7015a4e4ffdc6c7065f4475ea41a0226ad297))
|
|
18
|
+
* series colors, charts config ([ff207ac](https://dev.azure.com/draeger/ODXP/_git/odx-libraries/commit/ff207ace7037271e940626cd6edf37194ae6f75b))
|
|
19
|
+
|
|
1
20
|
# @odx/angular 2.4.0 (2023-07-24)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ElementRef, NgZone } from '@angular/core';
|
|
2
|
+
import { BaseChartDirective, ThemeService } from 'ng2-charts';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ChartThemeDirective extends BaseChartDirective {
|
|
5
|
+
private readonly chartsThemeServise;
|
|
6
|
+
private readonly takeUntilDestroyed;
|
|
7
|
+
constructor(element: ElementRef, ngzone: NgZone, parentThemeService: ThemeService);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChartThemeDirective, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ChartThemeDirective, "canvas[odxChart]", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "ng2-charts";
|
|
3
|
+
import * as i2 from "./charts-theme.directive";
|
|
4
|
+
export declare class ChartThemeModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChartThemeModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ChartThemeModule, never, [typeof i1.NgChartsModule, typeof i2.ChartThemeDirective], [typeof i1.NgChartsModule, typeof i2.ChartThemeDirective]>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ChartThemeModule>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Theme } from '@odx/angular/theming';
|
|
2
|
+
import { ChartConfiguration, Color } from 'chart.js';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ChartsThemeServise {
|
|
6
|
+
private readonly coreChartThemeService;
|
|
7
|
+
private readonly document;
|
|
8
|
+
private readonly windowRef;
|
|
9
|
+
private readonly themingService;
|
|
10
|
+
getOverrides: {
|
|
11
|
+
borderColor: string;
|
|
12
|
+
backgroundColor: string;
|
|
13
|
+
color: string;
|
|
14
|
+
font: {
|
|
15
|
+
family: string;
|
|
16
|
+
size: number;
|
|
17
|
+
};
|
|
18
|
+
plugins: {
|
|
19
|
+
colors: {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
};
|
|
22
|
+
tooltip: {
|
|
23
|
+
backgroundColor: string;
|
|
24
|
+
cornerRadius: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
datasets: {
|
|
28
|
+
line: {
|
|
29
|
+
backgroundColor: (context: any) => string;
|
|
30
|
+
borderColor: (context: any) => string;
|
|
31
|
+
pointBackgroundColor: (context: any) => string;
|
|
32
|
+
pointBorderColor: string;
|
|
33
|
+
};
|
|
34
|
+
bar: {
|
|
35
|
+
backgroundColor: (context: any) => string;
|
|
36
|
+
borderColor: (context: any) => string;
|
|
37
|
+
};
|
|
38
|
+
doughnut: {
|
|
39
|
+
backgroundColor: (context: any) => string;
|
|
40
|
+
borderColor: string;
|
|
41
|
+
};
|
|
42
|
+
polarArea: {
|
|
43
|
+
backgroundColor: (context: any) => string;
|
|
44
|
+
borderColor: (context: any) => string;
|
|
45
|
+
};
|
|
46
|
+
readonly pie: Record<string, Color | ((context: any) => Color)>;
|
|
47
|
+
readonly bubble: Record<string, Color | ((context: any) => Color)>;
|
|
48
|
+
readonly scatter: Record<string, Color | ((context: any) => Color)>;
|
|
49
|
+
readonly area: Record<string, Color | ((context: any) => Color)>;
|
|
50
|
+
readonly radar: Record<string, Color | ((context: any) => Color)>;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
seriesColors: string[];
|
|
54
|
+
observeThemeChanging$: Observable<MutationRecord | Theme>;
|
|
55
|
+
setTheme(chartConf: ChartConfiguration): void;
|
|
56
|
+
private themeColorsOverrides;
|
|
57
|
+
private buildBodyObserver;
|
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChartsThemeServise, never>;
|
|
59
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChartsThemeServise>;
|
|
60
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './lib/charts-theme.module';
|
|
2
|
+
export * from './lib/charts-theme.service';
|
|
3
|
+
export * from './lib/charts-theme.directive';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2hhcnRzLWNvbmZpZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jaGFydHMtdGhlbWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYXJ0cy10aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYXJ0cy10aGVtZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, NgZone } from '@angular/core';
|
|
2
|
+
import { untilDestroyed } from '@odx/angular/utils';
|
|
3
|
+
import { BaseChartDirective, ThemeService } from 'ng2-charts';
|
|
4
|
+
import { ChartsThemeServise } from './charts-theme.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "ng2-charts";
|
|
7
|
+
export class ChartThemeDirective extends BaseChartDirective {
|
|
8
|
+
constructor(element, ngzone, parentThemeService) {
|
|
9
|
+
super(element, ngzone, parentThemeService);
|
|
10
|
+
this.chartsThemeServise = inject(ChartsThemeServise);
|
|
11
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
12
|
+
this.chartsThemeServise.observeThemeChanging$
|
|
13
|
+
.pipe(this.takeUntilDestroyed())
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
.subscribe(() => this.chartsThemeServise.setTheme(this.chart?.config));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ChartThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
ChartThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ChartThemeDirective, isStandalone: true, selector: "canvas[odxChart]", usesInheritance: true, ngImport: i0 });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'canvas[odxChart]',
|
|
24
|
+
standalone: true,
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.ThemeService }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXRoZW1lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jaGFydHMtY29uZmlnL3NyYy9saWIvY2hhcnRzLXRoZW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQUl6RCxZQUFZLE9BQW1CLEVBQUUsTUFBYyxFQUFFLGtCQUFnQztRQUMvRSxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBSjVCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBSXJELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUI7YUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hDLDhEQUE4RDthQUM3RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQWEsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7Z0hBVlUsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBCYXNlQ2hhcnREaXJlY3RpdmUsIFRoZW1lU2VydmljZSB9IGZyb20gJ25nMi1jaGFydHMnO1xuaW1wb3J0IHsgQ2hhcnRzVGhlbWVTZXJ2aXNlIH0gZnJvbSAnLi9jaGFydHMtdGhlbWUuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2NhbnZhc1tvZHhDaGFydF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydFRoZW1lRGlyZWN0aXZlIGV4dGVuZHMgQmFzZUNoYXJ0RGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFydHNUaGVtZVNlcnZpc2UgPSBpbmplY3QoQ2hhcnRzVGhlbWVTZXJ2aXNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIG5nem9uZTogTmdab25lLCBwYXJlbnRUaGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSkge1xuICAgIHN1cGVyKGVsZW1lbnQsIG5nem9uZSwgcGFyZW50VGhlbWVTZXJ2aWNlKTtcbiAgICB0aGlzLmNoYXJ0c1RoZW1lU2VydmlzZS5vYnNlcnZlVGhlbWVDaGFuZ2luZyRcbiAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYXJ0c1RoZW1lU2VydmlzZS5zZXRUaGVtZSh0aGlzLmNoYXJ0Py5jb25maWcgYXMgYW55KSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';
|
|
3
|
+
import { ChartThemeDirective } from './charts-theme.directive';
|
|
4
|
+
import { ChartsThemeServise } from './charts-theme.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ChartThemeModule {
|
|
7
|
+
}
|
|
8
|
+
ChartThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
ChartThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, imports: [NgChartsModule, ChartThemeDirective], exports: [NgChartsModule, ChartThemeDirective] });
|
|
10
|
+
ChartThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: NgChartsConfiguration,
|
|
13
|
+
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
14
|
+
deps: [ChartsThemeServise],
|
|
15
|
+
},
|
|
16
|
+
BaseChartDirective,
|
|
17
|
+
], imports: [NgChartsModule, NgChartsModule] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, decorators: [{
|
|
19
|
+
type: NgModule,
|
|
20
|
+
args: [{
|
|
21
|
+
imports: [NgChartsModule, ChartThemeDirective],
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: NgChartsConfiguration,
|
|
25
|
+
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
26
|
+
deps: [ChartsThemeServise],
|
|
27
|
+
},
|
|
28
|
+
BaseChartDirective,
|
|
29
|
+
],
|
|
30
|
+
exports: [NgChartsModule, ChartThemeDirective],
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXRoZW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jaGFydHMtY29uZmlnL3NyYy9saWIvY2hhcnRzLXRoZW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBYzVELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixZQVhqQixjQUFjLEVBQUUsbUJBQW1CLGFBU25DLGNBQWMsRUFBRSxtQkFBbUI7OEdBRWxDLGdCQUFnQixhQVZoQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixVQUFVLEVBQUUsQ0FBQyxPQUEyQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3hHLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCO1FBQ0Qsa0JBQWtCO0tBQ25CLFlBUlMsY0FBYyxFQVNkLGNBQWM7MkZBRWIsZ0JBQWdCO2tCQVo1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztvQkFDOUMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFVBQVUsRUFBRSxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ3hHLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDO3lCQUMzQjt3QkFDRCxrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNoYXJ0RGlyZWN0aXZlLCBOZ0NoYXJ0c0NvbmZpZ3VyYXRpb24sIE5nQ2hhcnRzTW9kdWxlIH0gZnJvbSAnbmcyLWNoYXJ0cyc7XG5pbXBvcnQgeyBDaGFydFRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9jaGFydHMtdGhlbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENoYXJ0c1RoZW1lU2VydmlzZSB9IGZyb20gJy4vY2hhcnRzLXRoZW1lLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTmdDaGFydHNNb2R1bGUsIENoYXJ0VGhlbWVEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOZ0NoYXJ0c0NvbmZpZ3VyYXRpb24sXG4gICAgICB1c2VGYWN0b3J5OiAoc2VydmljZTogQ2hhcnRzVGhlbWVTZXJ2aXNlKSA9PiAoeyBkZWZhdWx0czogc2VydmljZS5nZXRPdmVycmlkZXMsIGdlbmVyYXRlQ29sb3JzOiBmYWxzZSB9KSxcbiAgICAgIGRlcHM6IFtDaGFydHNUaGVtZVNlcnZpc2VdLFxuICAgIH0sXG4gICAgQmFzZUNoYXJ0RGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbTmdDaGFydHNNb2R1bGUsIENoYXJ0VGhlbWVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydFRoZW1lTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { inject, Injectable } from '@angular/core';
|
|
4
|
+
import { WindowRef } from '@odx/angular';
|
|
5
|
+
import { ThemingService } from '@odx/angular/theming';
|
|
6
|
+
import { createMutationObserver } from '@odx/angular/utils';
|
|
7
|
+
import { ThemeService } from 'ng2-charts';
|
|
8
|
+
import { distinctUntilChanged, Observable } from 'rxjs';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ChartsThemeServise {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.coreChartThemeService = inject(ThemeService);
|
|
13
|
+
this.document = inject(DOCUMENT);
|
|
14
|
+
this.windowRef = inject(WindowRef);
|
|
15
|
+
this.themingService = inject(ThemingService);
|
|
16
|
+
this.getOverrides = {
|
|
17
|
+
borderColor: this.windowRef.getCSSVariable('gray-200'),
|
|
18
|
+
backgroundColor: 'rgba(0,0,0,0)',
|
|
19
|
+
color: this.windowRef.getCSSVariable('blue-700'),
|
|
20
|
+
font: {
|
|
21
|
+
family: 'Pangea',
|
|
22
|
+
size: 13.333,
|
|
23
|
+
},
|
|
24
|
+
plugins: {
|
|
25
|
+
colors: { enabled: false },
|
|
26
|
+
tooltip: {
|
|
27
|
+
backgroundColor: this.windowRef.getCSSVariable('blue-800'),
|
|
28
|
+
cornerRadius: 3,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
datasets: {
|
|
32
|
+
line: {
|
|
33
|
+
backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}66`,
|
|
34
|
+
borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
35
|
+
pointBackgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
36
|
+
pointBorderColor: '#fff',
|
|
37
|
+
},
|
|
38
|
+
bar: {
|
|
39
|
+
backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}99`,
|
|
40
|
+
borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
41
|
+
},
|
|
42
|
+
doughnut: {
|
|
43
|
+
backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}`,
|
|
44
|
+
borderColor: this.windowRef.getCSSVariable('gray-200'),
|
|
45
|
+
},
|
|
46
|
+
polarArea: {
|
|
47
|
+
backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}99`,
|
|
48
|
+
borderColor: (context) => `${this.seriesColors[context.dataIndex]}`,
|
|
49
|
+
},
|
|
50
|
+
get pie() {
|
|
51
|
+
return this.doughnut;
|
|
52
|
+
},
|
|
53
|
+
get bubble() {
|
|
54
|
+
return this.doughnut;
|
|
55
|
+
},
|
|
56
|
+
get scatter() {
|
|
57
|
+
return this.doughnut;
|
|
58
|
+
},
|
|
59
|
+
get area() {
|
|
60
|
+
return this.polarArea;
|
|
61
|
+
},
|
|
62
|
+
get radar() {
|
|
63
|
+
return this.line;
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
this.seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));
|
|
68
|
+
this.observeThemeChanging$ = this.document.body.className.includes('sb-')
|
|
69
|
+
? this.buildBodyObserver().pipe(distinctUntilChanged())
|
|
70
|
+
: this.themingService.theme$;
|
|
71
|
+
}
|
|
72
|
+
setTheme(chartConf) {
|
|
73
|
+
const type = (chartConf && chartConf['type']) || 'bar';
|
|
74
|
+
this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));
|
|
75
|
+
}
|
|
76
|
+
themeColorsOverrides(type) {
|
|
77
|
+
const scales = type === 'pie' || type === 'doughnut'
|
|
78
|
+
? undefined
|
|
79
|
+
: {
|
|
80
|
+
x: {
|
|
81
|
+
ticks: { color: this.windowRef.getCSSVariable('blue-700') },
|
|
82
|
+
grid: { color: this.windowRef.getCSSVariable('gray-200') },
|
|
83
|
+
},
|
|
84
|
+
y: {
|
|
85
|
+
ticks: { color: this.windowRef.getCSSVariable('blue-700') },
|
|
86
|
+
grid: { color: this.windowRef.getCSSVariable('gray-200') },
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
color: this.windowRef.getCSSVariable('blue-700'),
|
|
91
|
+
scales,
|
|
92
|
+
plugins: {
|
|
93
|
+
colors: {
|
|
94
|
+
forceOverride: true,
|
|
95
|
+
},
|
|
96
|
+
legend: {},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
buildBodyObserver() {
|
|
101
|
+
return new Observable((observer) => {
|
|
102
|
+
const mutation = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));
|
|
103
|
+
mutation.observe(this.document.body, { attributes: true });
|
|
104
|
+
return () => mutation.disconnect();
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ChartsThemeServise.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
109
|
+
ChartsThemeServise.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, providedIn: 'root' });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, decorators: [{
|
|
111
|
+
type: Injectable,
|
|
112
|
+
args: [{ providedIn: 'root' }]
|
|
113
|
+
}] });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXRoZW1lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2hhcnRzLWNvbmZpZy9zcmMvbGliL2NoYXJ0cy10aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQVMsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd4RCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRW1CLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsaUJBQVksR0FBRztZQUNwQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQ3RELGVBQWUsRUFBRSxlQUFlO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7WUFDaEQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJ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QyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN4SSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0QsT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FwR1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzJGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgVGhlbWUsIFRoZW1pbmdTZXJ2aWNlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3RoZW1pbmcnO1xuaW1wb3J0IHsgY3JlYXRlTXV0YXRpb25PYnNlcnZlciB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDaGFydENvbmZpZ3VyYXRpb24sIENoYXJ0VHlwZSwgQ29sb3IgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzVGhlbWVTZXJ2aXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb3JlQ2hhcnRUaGVtZVNlcnZpY2UgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWluZ1NlcnZpY2UgPSBpbmplY3QoVGhlbWluZ1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBnZXRPdmVycmlkZXMgPSB7XG4gICAgYm9yZGVyQ29sb3I6IHRoaXMud2luZG93UmVmLmdldENTU1ZhcmlhYmxlKCdncmF5LTIwMCcpLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxuICAgIGNvbG9yOiB0aGlzLndpbmRvd1JlZi5nZXRDU1NWYXJpYWJsZSgnYmx1ZS03MDAnKSxcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6ICdQYW5nZWEnLFxuICAgICAgc2l6ZTogMTMuMzMzLFxuICAgIH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgY29sb3JzOiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB0b29sdGlwOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy53aW5kb3dSZWYuZ2V0Q1NTVmFyaWFibGUoJ2JsdWUtODAwJyksXG4gICAgICAgIGNvcm5lclJhZGl1czogMyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkYXRhc2V0czoge1xuICAgICAgbGluZToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChjb250ZXh0OiBhbnkpID0+IGAke3RoaXMuc2VyaWVzQ29sb3JzW2NvbnRleHQuZGF0YXNldEluZGV4XX02NmAsXG4gICAgICAgIGJvcmRlckNvbG9yOiAoY29udGV4dDogYW55KSA9PiBgJHt0aGlzLnNlcmllc0NvbG9yc1tjb250ZXh0LmRhdGFzZXRJbmRleF19YCxcbiAgICAgICAgcG9pbnRCYWNrZ3JvdW5kQ29sb3I6IChjb250ZXh0OiBhbnkpID0+IGAke3RoaXMuc2VyaWVzQ29sb3JzW2NvbnRleHQuZGF0YXNldEluZGV4XX1gLFxuICAgICAgICBwb2ludEJvcmRlckNvbG9yOiAnI2ZmZicsXG4gICAgICB9LFxuICAgICAgYmFyOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKGNvbnRleHQ6IGFueSkgPT4gYCR7dGhpcy5zZXJpZXNDb2xvcnNbY29udGV4dC5kYXRhc2V0SW5kZXhdfTk5YCxcbiAgICAgICAgYm9yZGVyQ29sb3I6IChjb250ZXh0OiBhbnkpID0+IGAke3RoaXMuc2VyaWVzQ29sb3JzW2NvbnRleHQuZGF0YXNldEluZGV4XX1gLFxuICAgICAgfSxcbiAgICAgIGRvdWdobnV0OiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKGNvbnRleHQ6IGFueSkgPT4gYCR7dGhpcy5zZXJpZXNDb2xvcnNbY29udGV4dC5kYXRhSW5kZXhdfWAsXG4gICAgICAgIGJvcmRlckNvbG9yOiB0aGlzLndpbmRvd1JlZi5nZXRDU1NWYXJpYWJsZSgnZ3JheS0yMDAnKSxcbiAgICAgIH0sXG4gICAgICBwb2xhckFyZWE6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAoY29udGV4dDogYW55KSA9PiBgJHt0aGlzLnNlcmllc0NvbG9yc1tjb250ZXh0LmRhdGFJbmRleF19OTlgLFxuICAgICAgICBib3JkZXJDb2xvcjogKGNvbnRleHQ6IGFueSkgPT4gYCR7dGhpcy5zZXJpZXNDb2xvcnNbY29udGV4dC5kYXRhSW5kZXhdfWAsXG4gICAgICB9LFxuICAgICAgZ2V0IHBpZSgpOiBSZWNvcmQ8c3RyaW5nLCAoKGNvbnRleHQ6IGFueSkgPT4gQ29sb3IpIHwgQ29sb3I+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG91Z2hudXQ7XG4gICAgICB9LFxuICAgICAgZ2V0IGJ1YmJsZSgpOiBSZWNvcmQ8c3RyaW5nLCAoKGNvbnRleHQ6IGFueSkgPT4gQ29sb3IpIHwgQ29sb3I+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG91Z2hudXQ7XG4gICAgICB9LFxuICAgICAgZ2V0IHNjYXR0ZXIoKTogUmVjb3JkPHN0cmluZywgKChjb250ZXh0OiBhbnkpID0+IENvbG9yKSB8IENvbG9yPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvdWdobnV0O1xuICAgICAgfSxcbiAgICAgIGdldCBhcmVhKCk6IFJlY29yZDxzdHJpbmcsICgoY29udGV4dDogYW55KSA9PiBDb2xvcikgfCBDb2xvcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb2xhckFyZWE7XG4gICAgICB9LFxuICAgICAgZ2V0IHJhZGFyKCk6IFJlY29yZDxzdHJpbmcsICgoY29udGV4dDogYW55KSA9PiBDb2xvcikgfCBDb2xvcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHB1YmxpYyBzZXJpZXNDb2xvcnMgPSBPYmplY3QudmFsdWVzKHRoaXMud2luZG93UmVmLmdldENTU0NvbG9yU3R5bGVzKCdjaGFydHMtc2VyaWVzJykpO1xuICBwdWJsaWMgb2JzZXJ2ZVRoZW1lQ2hhbmdpbmckOiBPYnNlcnZhYmxlPE11dGF0aW9uUmVjb3JkIHwgVGhlbWU+ID0gdGhpcy5kb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5pbmNsdWRlcygnc2ItJylcbiAgICA/IHRoaXMuYnVpbGRCb2R5T2JzZXJ2ZXIoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgOiB0aGlzLnRoZW1pbmdTZXJ2aWNlLnRoZW1lJDtcblxuICBwdWJsaWMgc2V0VGhlbWUoY2hhcnRDb25mOiBDaGFydENvbmZpZ3VyYXRpb24pIHtcbiAgICBjb25zdCB0eXBlOiBDaGFydFR5cGUgPSAoY2hhcnRDb25mICYmIGNoYXJ0Q29uZlsndHlwZSddKSB8fCAnYmFyJztcbiAgICB0aGlzLmNvcmVDaGFydFRoZW1lU2VydmljZS5zZXRDb2xvcnNjaGVtZXNPcHRpb25zKHRoaXMudGhlbWVDb2xvcnNPdmVycmlkZXModHlwZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0aGVtZUNvbG9yc092ZXJyaWRlcyh0eXBlPzogQ2hhcnRUeXBlKTogQ2hhcnRDb25maWd1cmF0aW9uWydvcHRpb25zJ10ge1xuICAgIGNvbnN0IHNjYWxlcyA9XG4gICAgICB0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAnZG91Z2hudXQnXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDoge1xuICAgICAgICAgICAgeDoge1xuICAgICAgICAgICAgICB0aWNrczogeyBjb2xvcjogdGhpcy53aW5kb3dSZWYuZ2V0Q1NTVmFyaWFibGUoJ2JsdWUtNzAwJykgfSxcbiAgICAgICAgICAgICAgZ3JpZDogeyBjb2xvcjogdGhpcy53aW5kb3dSZWYuZ2V0Q1NTVmFyaWFibGUoJ2dyYXktMjAwJykgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5OiB7XG4gICAgICAgICAgICAgIHRpY2tzOiB7IGNvbG9yOiB0aGlzLndpbmRvd1JlZi5nZXRDU1NWYXJpYWJsZSgnYmx1ZS03MDAnKSB9LFxuICAgICAgICAgICAgICBncmlkOiB7IGNvbG9yOiB0aGlzLndpbmRvd1JlZi5nZXRDU1NWYXJpYWJsZSgnZ3JheS0yMDAnKSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogdGhpcy53aW5kb3dSZWYuZ2V0Q1NTVmFyaWFibGUoJ2JsdWUtNzAwJyksXG4gICAgICBzY2FsZXMsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIGNvbG9yczoge1xuICAgICAgICAgIGZvcmNlT3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGxlZ2VuZDoge30sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQm9keU9ic2VydmVyKCk6IE9ic2VydmFibGU8TXV0YXRpb25SZWNvcmQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciA9IGNyZWF0ZU11dGF0aW9uT2JzZXJ2ZXIob2JzZXJ2ZXIsIChtdXRhdGlvbnMpID0+IG11dGF0aW9ucy5zb21lKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSk7XG4gICAgICBtdXRhdGlvbi5vYnNlcnZlKHRoaXMuZG9jdW1lbnQuYm9keSwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuICgpID0+IG11dGF0aW9uLmRpc2Nvbm5lY3QoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY2hhcnRzLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jaGFydHMtY29uZmlnL3NyYy9vZHgtYW5ndWxhci1jaGFydHMtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -8,7 +8,8 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export class WindowRef {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.title = inject(Title);
|
|
11
|
-
this.
|
|
11
|
+
this.document = inject(DOCUMENT);
|
|
12
|
+
this.nativeWindow = this.document.defaultView ?? window;
|
|
12
13
|
this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.isOnline()), distinctUntilChanged(), shareReplay({ refCount: true }));
|
|
13
14
|
this.pageTitle$ = (inject(Router, { optional: true })?.events ?? EMPTY).pipe(filter((event) => event instanceof NavigationEnd), startWith(null), debounceTime(0), map(() => this.title.getTitle()), shareReplay({ refCount: true }));
|
|
14
15
|
}
|
|
@@ -34,6 +35,28 @@ export class WindowRef {
|
|
|
34
35
|
const componentType = reflectComponentType(type);
|
|
35
36
|
return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
|
|
36
37
|
}
|
|
38
|
+
getCSSVariable(name, element = this.document.body) {
|
|
39
|
+
return this.nativeWindow.getComputedStyle(element).getPropertyValue(`--${name}`).trim();
|
|
40
|
+
}
|
|
41
|
+
getCSSColorStyles(filter, selector = 'body') {
|
|
42
|
+
const selectorFilter = new RegExp(`^${selector}$`);
|
|
43
|
+
const nameFilter = new RegExp(`^--${filter}`);
|
|
44
|
+
const arr = Array.from(this.document.styleSheets)
|
|
45
|
+
.filter(({ href }) => !href || href.startsWith(this.nativeWindow.location.origin))
|
|
46
|
+
.map(({ cssRules }) => Array.from(cssRules)[0])
|
|
47
|
+
.filter((rule) => rule instanceof CSSStyleRule && selectorFilter.test(rule.selectorText.trim()))
|
|
48
|
+
.reduce((colors, rule) => {
|
|
49
|
+
Object.values(rule.style)
|
|
50
|
+
.map((style) => style.toString().trim())
|
|
51
|
+
.filter((name) => Boolean(name) && nameFilter.test(name))
|
|
52
|
+
.forEach((name) => {
|
|
53
|
+
const key = name.replace('--', '');
|
|
54
|
+
colors[key] = this.getCSSVariable(key);
|
|
55
|
+
});
|
|
56
|
+
return colors;
|
|
57
|
+
}, {});
|
|
58
|
+
return arr;
|
|
59
|
+
}
|
|
37
60
|
}
|
|
38
61
|
WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
62
|
WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WindowRef, providedIn: 'root' });
|
|
@@ -43,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
43
66
|
providedIn: 'root',
|
|
44
67
|
}]
|
|
45
68
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUNuRCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFD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O1lBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBcUIsQ0FBQyxLQUFLLENBQUM7aUJBQ3hDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN2QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOztzR0F0RVUsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzT25saW5lKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVRpdGxlJCA9IChpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5ldmVudHMgPz8gRU1QVFkpLnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZGVib3VuY2VUaW1lKDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnRpdGxlLmdldFRpdGxlKCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgaXNPbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlQ29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExhbmd1YWdlKCkuc3BsaXQoLy18Xy8pWzBdLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ub3JpZ2luO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBhZ2UoKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgcXVlcnlCeUNvbXBvbmVudDxUPih0eXBlOiBUeXBlPFQ+KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBjb21wb25lbnRUeXBlID0gcmVmbGVjdENvbXBvbmVudFR5cGUodHlwZSk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50VHlwZSA/IHRoaXMubmF0aXZlV2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29tcG9uZW50VHlwZS5zZWxlY3RvcikgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldENTU1ZhcmlhYmxlKG5hbWU6IHN0cmluZywgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmJvZHkpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tJHtuYW1lfWApLnRyaW0oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDU1NDb2xvclN0eWxlcyhmaWx0ZXI6IHN0cmluZywgc2VsZWN0b3IgPSAnYm9keScpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBzZWxlY3RvckZpbHRlciA9IG5ldyBSZWdFeHAoYF4ke3NlbGVjdG9yfSRgKTtcbiAgICBjb25zdCBuYW1lRmlsdGVyID0gbmV3IFJlZ0V4cChgXi0tJHtmaWx0ZXJ9YCk7XG4gICAgY29uc3QgYXJyID0gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnN0eWxlU2hlZXRzKVxuICAgICAgLmZpbHRlcigoeyBocmVmIH0pID0+ICFocmVmIHx8IGhyZWYuc3RhcnRzV2l0aCh0aGlzLm5hdGl2ZVdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKVxuICAgICAgLm1hcCgoeyBjc3NSdWxlcyB9KSA9PiBBcnJheS5mcm9tKGNzc1J1bGVzKVswXSlcbiAgICAgIC5maWx0ZXIoKHJ1bGUpID0+IHJ1bGUgaW5zdGFuY2VvZiBDU1NTdHlsZVJ1bGUgJiYgc2VsZWN0b3JGaWx0ZXIudGVzdChydWxlLnNlbGVjdG9yVGV4dC50cmltKCkpKVxuICAgICAgLnJlZHVjZSgoY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBydWxlKSA9PiB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMoKHJ1bGUgYXMgQ1NTU3R5bGVSdWxlKS5zdHlsZSlcbiAgICAgICAgICAubWFwKChzdHlsZSkgPT4gc3R5bGUudG9TdHJpbmcoKS50cmltKCkpXG4gICAgICAgICAgLmZpbHRlcigobmFtZSkgPT4gQm9vbGVhbihuYW1lKSAmJiBuYW1lRmlsdGVyLnRlc3QobmFtZSkpXG4gICAgICAgICAgLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG5hbWUucmVwbGFjZSgnLS0nLCAnJyk7XG4gICAgICAgICAgICBjb2xvcnNba2V5XSA9IHRoaXMuZ2V0Q1NTVmFyaWFibGUoa2V5KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbG9ycztcbiAgICAgIH0sIHt9KTtcbiAgICByZXR1cm4gYXJyO1xuICB9XG59XG4iXX0=
|
|
@@ -42,6 +42,18 @@ export function createResizeObserver(callback) {
|
|
|
42
42
|
return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
export function createMutationObserver(observer, callback) {
|
|
46
|
+
try {
|
|
47
|
+
return new MutationObserver((mutations) => {
|
|
48
|
+
if (callback(mutations)) {
|
|
49
|
+
observer.next(mutations[0]);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
45
57
|
export function containsElement(parent, other, inclusive = true) {
|
|
46
58
|
if (!parent || !other)
|
|
47
59
|
return false;
|
|
@@ -49,4 +61,4 @@ export function containsElement(parent, other, inclusive = true) {
|
|
|
49
61
|
return false;
|
|
50
62
|
return parent.contains(other);
|
|
51
63
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQXVGO0lBQ3ZJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsT0FBTyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxLQUFjO0lBQy9CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDdkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsUUFBaUI7SUFDM0UsSUFBSSxRQUFRLEVBQUU7UUFDWixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUNuRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUN4QztTQUFNO1FBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQztJQUNuRSxJQUFJO1FBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNyQztJQUFDLE1BQU07UUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUNyRjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBb0MsRUFBRSxRQUFrRDtJQUM3SCxJQUFJO1FBQ0YsT0FBTyxJQUFJLGdCQUFnQixDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztLQUNKO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7S0FDbkY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUF1QixFQUFFLEtBQXNCLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDL0YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzdHlsZXM6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbiB8IFJlY29yZDxrZXlvZiBDU1NTdHlsZURlY2xhcmF0aW9uLCBzdHJpbmcgfCBudWxsPj4pOiB2b2lkIHtcbiAgT2JqZWN0LmFzc2lnbihlbGVtZW50LnN0eWxlLCBzdHlsZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYm9vbGVhblRvQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlKSA/PyAnZmFsc2UnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcoc3RhdGU6IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIHN0YXRlID8gJ3RydWUnIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHB4KHZhbHVlOiB1bmtub3duKTogYCR7bnVtYmVyfXB4YCB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiAnMHB4Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNzc1RyYW5zbGF0ZSh4OiBzdHJpbmcgfCAwLCB5OiBzdHJpbmcgfCAwKTogYHRyYW5zbGF0ZTNkKCR7c3RyaW5nIHwgMH0sICR7c3RyaW5nIHwgMH0sIDApYCB7XG4gIHJldHVybiBgdHJhbnNsYXRlM2QoJHt4fSwgJHt5fSwgMClgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZUNTU1RyYW5zaXRpb25zKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICBpZiAoZGlzYWJsZWQpIHtcbiAgICBhcHBseVN0eWxlcyhlbGVtZW50LCB7IHRyYW5zaXRpb246ICdub25lJyB9KTtcbiAgfSBlbHNlIHtcbiAgICBmb3JjZUxheW91dFJlZmxvdyhlbGVtZW50KTtcbiAgICBhcHBseVN0eWxlcyhlbGVtZW50LCB7IHRyYW5zaXRpb246IG51bGwgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmNlTGF5b3V0UmVmbG93KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXR0cmlidXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiB1bmtub3duKSB7XG4gIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZShhdHRyaWJ1dGUsICEhdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXNpemVPYnNlcnZlcihjYWxsYmFjazogUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayk6IFJlc2l6ZU9ic2VydmVyIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgb2JzZXJ2ZTogKCkgPT4gdm9pZCAwLCBkaXNjb25uZWN0OiAoKSA9PiB2b2lkIDAsIHVub2JzZXJ2ZTogKCkgPT4gdm9pZCAwIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11dGF0aW9uT2JzZXJ2ZXIob2JzZXJ2ZXI6IFN1YnNjcmliZXI8TXV0YXRpb25SZWNvcmQ+LCBjYWxsYmFjazogKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4gYm9vbGVhbik6IE11dGF0aW9uT2JzZXJ2ZXIge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBpZiAoY2FsbGJhY2sobXV0YXRpb25zKSkge1xuICAgICAgICBvYnNlcnZlci5uZXh0KG11dGF0aW9uc1swXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGlzY29ubmVjdDogKCkgPT4gdm9pZCAwLCBvYnNlcnZlOiAoKSA9PiB2b2lkIDAsIHRha2VSZWNvcmRzOiAoKSA9PiBbXSB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluc0VsZW1lbnQocGFyZW50PzogRWxlbWVudCB8IG51bGwsIG90aGVyPzogRWxlbWVudCB8IG51bGwsIGluY2x1c2l2ZSA9IHRydWUpOiBib29sZWFuIHtcbiAgaWYgKCFwYXJlbnQgfHwgIW90aGVyKSByZXR1cm4gZmFsc2U7XG4gIGlmICghaW5jbHVzaXZlICYmIHBhcmVudCA9PT0gb3RoZXIpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHBhcmVudC5jb250YWlucyhvdGhlcik7XG59XG4iXX0=
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from 'ng2-charts';
|
|
4
|
+
import { ThemeService, BaseChartDirective, NgChartsModule, NgChartsConfiguration } from 'ng2-charts';
|
|
5
|
+
import { createMutationObserver, untilDestroyed } from '@odx/angular/utils';
|
|
6
|
+
import { DOCUMENT } from '@angular/common';
|
|
7
|
+
import { WindowRef } from '@odx/angular';
|
|
8
|
+
import { ThemingService } from '@odx/angular/theming';
|
|
9
|
+
import { distinctUntilChanged, Observable } from 'rxjs';
|
|
10
|
+
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
12
|
+
class ChartsThemeServise {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.coreChartThemeService = inject(ThemeService);
|
|
15
|
+
this.document = inject(DOCUMENT);
|
|
16
|
+
this.windowRef = inject(WindowRef);
|
|
17
|
+
this.themingService = inject(ThemingService);
|
|
18
|
+
this.getOverrides = {
|
|
19
|
+
borderColor: this.windowRef.getCSSVariable('gray-200'),
|
|
20
|
+
backgroundColor: 'rgba(0,0,0,0)',
|
|
21
|
+
color: this.windowRef.getCSSVariable('blue-700'),
|
|
22
|
+
font: {
|
|
23
|
+
family: 'Pangea',
|
|
24
|
+
size: 13.333,
|
|
25
|
+
},
|
|
26
|
+
plugins: {
|
|
27
|
+
colors: { enabled: false },
|
|
28
|
+
tooltip: {
|
|
29
|
+
backgroundColor: this.windowRef.getCSSVariable('blue-800'),
|
|
30
|
+
cornerRadius: 3,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
datasets: {
|
|
34
|
+
line: {
|
|
35
|
+
backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}66`,
|
|
36
|
+
borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
37
|
+
pointBackgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
38
|
+
pointBorderColor: '#fff',
|
|
39
|
+
},
|
|
40
|
+
bar: {
|
|
41
|
+
backgroundColor: (context) => `${this.seriesColors[context.datasetIndex]}99`,
|
|
42
|
+
borderColor: (context) => `${this.seriesColors[context.datasetIndex]}`,
|
|
43
|
+
},
|
|
44
|
+
doughnut: {
|
|
45
|
+
backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}`,
|
|
46
|
+
borderColor: this.windowRef.getCSSVariable('gray-200'),
|
|
47
|
+
},
|
|
48
|
+
polarArea: {
|
|
49
|
+
backgroundColor: (context) => `${this.seriesColors[context.dataIndex]}99`,
|
|
50
|
+
borderColor: (context) => `${this.seriesColors[context.dataIndex]}`,
|
|
51
|
+
},
|
|
52
|
+
get pie() {
|
|
53
|
+
return this.doughnut;
|
|
54
|
+
},
|
|
55
|
+
get bubble() {
|
|
56
|
+
return this.doughnut;
|
|
57
|
+
},
|
|
58
|
+
get scatter() {
|
|
59
|
+
return this.doughnut;
|
|
60
|
+
},
|
|
61
|
+
get area() {
|
|
62
|
+
return this.polarArea;
|
|
63
|
+
},
|
|
64
|
+
get radar() {
|
|
65
|
+
return this.line;
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
this.seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));
|
|
70
|
+
this.observeThemeChanging$ = this.document.body.className.includes('sb-')
|
|
71
|
+
? this.buildBodyObserver().pipe(distinctUntilChanged())
|
|
72
|
+
: this.themingService.theme$;
|
|
73
|
+
}
|
|
74
|
+
setTheme(chartConf) {
|
|
75
|
+
const type = (chartConf && chartConf['type']) || 'bar';
|
|
76
|
+
this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));
|
|
77
|
+
}
|
|
78
|
+
themeColorsOverrides(type) {
|
|
79
|
+
const scales = type === 'pie' || type === 'doughnut'
|
|
80
|
+
? undefined
|
|
81
|
+
: {
|
|
82
|
+
x: {
|
|
83
|
+
ticks: { color: this.windowRef.getCSSVariable('blue-700') },
|
|
84
|
+
grid: { color: this.windowRef.getCSSVariable('gray-200') },
|
|
85
|
+
},
|
|
86
|
+
y: {
|
|
87
|
+
ticks: { color: this.windowRef.getCSSVariable('blue-700') },
|
|
88
|
+
grid: { color: this.windowRef.getCSSVariable('gray-200') },
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
color: this.windowRef.getCSSVariable('blue-700'),
|
|
93
|
+
scales,
|
|
94
|
+
plugins: {
|
|
95
|
+
colors: {
|
|
96
|
+
forceOverride: true,
|
|
97
|
+
},
|
|
98
|
+
legend: {},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
buildBodyObserver() {
|
|
103
|
+
return new Observable((observer) => {
|
|
104
|
+
const mutation = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));
|
|
105
|
+
mutation.observe(this.document.body, { attributes: true });
|
|
106
|
+
return () => mutation.disconnect();
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
ChartsThemeServise.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
111
|
+
ChartsThemeServise.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, providedIn: 'root' });
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, decorators: [{
|
|
113
|
+
type: Injectable,
|
|
114
|
+
args: [{ providedIn: 'root' }]
|
|
115
|
+
}] });
|
|
116
|
+
|
|
117
|
+
class ChartThemeDirective extends BaseChartDirective {
|
|
118
|
+
constructor(element, ngzone, parentThemeService) {
|
|
119
|
+
super(element, ngzone, parentThemeService);
|
|
120
|
+
this.chartsThemeServise = inject(ChartsThemeServise);
|
|
121
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
122
|
+
this.chartsThemeServise.observeThemeChanging$
|
|
123
|
+
.pipe(this.takeUntilDestroyed())
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
+
.subscribe(() => { var _a; return this.chartsThemeServise.setTheme((_a = this.chart) === null || _a === void 0 ? void 0 : _a.config); });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
ChartThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
129
|
+
ChartThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ChartThemeDirective, isStandalone: true, selector: "canvas[odxChart]", usesInheritance: true, ngImport: i0 });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, decorators: [{
|
|
131
|
+
type: Directive,
|
|
132
|
+
args: [{
|
|
133
|
+
selector: 'canvas[odxChart]',
|
|
134
|
+
standalone: true,
|
|
135
|
+
}]
|
|
136
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.ThemeService }]; } });
|
|
137
|
+
|
|
138
|
+
class ChartThemeModule {
|
|
139
|
+
}
|
|
140
|
+
ChartThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
141
|
+
ChartThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, imports: [NgChartsModule, ChartThemeDirective], exports: [NgChartsModule, ChartThemeDirective] });
|
|
142
|
+
ChartThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, providers: [
|
|
143
|
+
{
|
|
144
|
+
provide: NgChartsConfiguration,
|
|
145
|
+
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
146
|
+
deps: [ChartsThemeServise],
|
|
147
|
+
},
|
|
148
|
+
BaseChartDirective,
|
|
149
|
+
], imports: [NgChartsModule, NgChartsModule] });
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeModule, decorators: [{
|
|
151
|
+
type: NgModule,
|
|
152
|
+
args: [{
|
|
153
|
+
imports: [NgChartsModule, ChartThemeDirective],
|
|
154
|
+
providers: [
|
|
155
|
+
{
|
|
156
|
+
provide: NgChartsConfiguration,
|
|
157
|
+
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
158
|
+
deps: [ChartsThemeServise],
|
|
159
|
+
},
|
|
160
|
+
BaseChartDirective,
|
|
161
|
+
],
|
|
162
|
+
exports: [NgChartsModule, ChartThemeDirective],
|
|
163
|
+
}]
|
|
164
|
+
}] });
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Generated bundle index. Do not edit.
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
export { ChartThemeDirective, ChartThemeModule, ChartsThemeServise };
|
|
171
|
+
//# sourceMappingURL=odx-angular-charts-config.mjs.map
|