aril 0.1.10 → 0.1.12
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/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +1 -1
- package/esm2022/ui/badge/src/badge.component.mjs +5 -4
- package/esm2022/ui/charts/aril-ui-charts.mjs +5 -0
- package/esm2022/ui/charts/index.mjs +4 -0
- package/esm2022/ui/charts/src/column/column-chart.component.mjs +124 -0
- package/esm2022/ui/charts/src/line/line-chart.component.mjs +164 -0
- package/esm2022/ui/charts/src/pie/pie-chart.component.mjs +116 -0
- package/esm2022/ui/charts/src/theme/theme.mjs +54 -0
- package/esm2022/ui/detailed-overlay-panel/aril-ui-detailed-overlay-panel.mjs +5 -0
- package/esm2022/ui/detailed-overlay-panel/index.mjs +2 -0
- package/esm2022/ui/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +62 -0
- package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +8 -5
- package/esm2022/ui/multiSelect/aril-ui-multiSelect.mjs +5 -0
- package/esm2022/ui/multiSelect/index.mjs +2 -0
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +30 -0
- package/esm2022/ui/table/src/table.component.mjs +3 -3
- package/esm2022/ui/value/src/value.component.mjs +26 -6
- package/fesm2022/aril-theme-layout.mjs +1 -1
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-badge.mjs +4 -3
- package/fesm2022/aril-ui-badge.mjs.map +1 -1
- package/fesm2022/aril-ui-charts.mjs +448 -0
- package/fesm2022/aril-ui-charts.mjs.map +1 -0
- package/fesm2022/aril-ui-detailed-overlay-panel.mjs +69 -0
- package/fesm2022/aril-ui-detailed-overlay-panel.mjs.map +1 -0
- package/fesm2022/aril-ui-lib.mjs +10 -7
- package/fesm2022/aril-ui-lib.mjs.map +1 -1
- package/fesm2022/aril-ui-multiSelect.mjs +37 -0
- package/fesm2022/aril-ui-multiSelect.mjs.map +1 -0
- package/fesm2022/aril-ui-table.mjs +2 -2
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +25 -5
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/package.json +81 -63
- package/ui/badge/src/badge.component.d.ts +2 -1
- package/ui/charts/index.d.ts +3 -0
- package/ui/charts/src/column/column-chart.component.d.ts +25 -0
- package/ui/charts/src/line/line-chart.component.d.ts +26 -0
- package/ui/charts/src/pie/pie-chart.component.d.ts +24 -0
- package/ui/charts/src/theme/theme.d.ts +5 -0
- package/ui/detailed-overlay-panel/index.d.ts +1 -0
- package/ui/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +24 -0
- package/ui/lib/src/input/input-error-message.pipe.d.ts +3 -0
- package/ui/multiSelect/index.d.ts +1 -0
- package/ui/multiSelect/src/multi-select.component.d.ts +17 -0
- package/ui/value/src/value.component.d.ts +7 -1
|
@@ -66,7 +66,7 @@ export class AppTopbarComponent {
|
|
|
66
66
|
this.layoutService.showConfigSidebar();
|
|
67
67
|
}
|
|
68
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"mr-3\" alt=\"yeap\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" style=\"width: 50rem\">\r\n\t\t<span class=\"p-input-icon-left\" style=\"width: 100%\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\tplaceholder=\"Genel Arama\"\r\n\t\t\t\tstyle=\"background: #EFF3F8;border: none; height: 42px;\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element sm:w-full\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-sitemap\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-history\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-heart\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"pi pi-bell\" severity=\"info\" pBadge [value]=\"0\"></i>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i2.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i3.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value"] }] }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"mr-3\" alt=\"yeap\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" style=\"width: 50rem\">\r\n\t\t<span class=\"p-input-icon-left\" style=\"width: 100%\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\tplaceholder=\"Genel Arama\"\r\n\t\t\t\tstyle=\"background: #EFF3F8;border: none; height: 42px;\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element sm:w-full\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-sitemap\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-history\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-heart\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"pi pi-bell\" severity=\"info\" pBadge [value]=\"0\"></i>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i2.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i3.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }] }); }
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
@@ -6,14 +6,15 @@ export class BadgeComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.icon = input();
|
|
8
8
|
this.value = input();
|
|
9
|
-
this.severity = input
|
|
9
|
+
this.severity = input();
|
|
10
10
|
this.rounded = input();
|
|
11
|
+
this.background = input();
|
|
11
12
|
}
|
|
12
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: BadgeComponent, isStandalone: true, selector: "aril-badge", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired:
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: BadgeComponent, isStandalone: true, selector: "aril-badge", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<p-tag\r\n [icon]=\"icon()\"\r\n [value]=\"value()\"\r\n [severity]=\"severity()\"\r\n [rounded]=\"rounded()\"\r\n [style]=\"{ backgroundColor: background(), textAlign: 'center', fontSize: '0.9rem' }\">\r\n <ng-content></ng-content>\r\n</p-tag>", dependencies: [{ kind: "ngmodule", type: TagModule }, { kind: "component", type: i1.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
15
|
}
|
|
15
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
16
17
|
type: Component,
|
|
17
|
-
args: [{ standalone: true, selector: 'aril-badge', imports: [TagModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tag
|
|
18
|
+
args: [{ standalone: true, selector: 'aril-badge', imports: [TagModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tag\r\n [icon]=\"icon()\"\r\n [value]=\"value()\"\r\n [severity]=\"severity()\"\r\n [rounded]=\"rounded()\"\r\n [style]=\"{ backgroundColor: background(), textAlign: 'center', fontSize: '0.9rem' }\">\r\n <ng-content></ng-content>\r\n</p-tag>" }]
|
|
18
19
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9iYWRnZS9zcmMvYmFkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9iYWRnZS9zcmMvYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBV3hDLE1BQU0sT0FBTyxjQUFjO0lBUDNCO1FBUUMsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN4QixhQUFRLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDN0IsWUFBTyxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxLQUFLLEVBQVUsQ0FBQztLQUM3Qjs4R0FOWSxjQUFjO2tHQUFkLGNBQWMscXNCQ2IzQiw0UEFPUSwyQ0RHRyxTQUFTOzsyRkFHUCxjQUFjO2tCQVAxQixTQUFTO2lDQUNHLElBQUksWUFDTixZQUFZLFdBRWIsQ0FBQyxTQUFTLENBQUMsbUJBQ0gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUYWdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhZyc7XHJcblxyXG50eXBlIFNldmVyaXR5ID0gJ3N1Y2Nlc3MnIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdjb250cmFzdCcgfCB1bmRlZmluZWQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1iYWRnZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2JhZGdlLmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbVGFnTW9kdWxlXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQge1xyXG5cdGljb24gPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0dmFsdWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0c2V2ZXJpdHkgPSBpbnB1dDxTZXZlcml0eT4oKTtcclxuXHRyb3VuZGVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRiYWNrZ3JvdW5kID0gaW5wdXQ8c3RyaW5nPigpO1xyXG59XHJcbiIsIjxwLXRhZ1xyXG4gIFtpY29uXT1cImljb24oKVwiXHJcbiAgW3ZhbHVlXT1cInZhbHVlKClcIlxyXG4gIFtzZXZlcml0eV09XCJzZXZlcml0eSgpXCJcclxuICBbcm91bmRlZF09XCJyb3VuZGVkKClcIlxyXG4gIFtzdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCgpLCB0ZXh0QWxpZ246ICdjZW50ZXInLCBmb250U2l6ZTogJzAuOXJlbScgfVwiPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9wLXRhZz4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpbC11aS1jaGFydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoYXJ0cy9hcmlsLXVpLWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './src/pie/pie-chart.component';
|
|
2
|
+
export * from './src/column/column-chart.component';
|
|
3
|
+
export * from './src/line/line-chart.component';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoYXJ0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3BpZS9waWUtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvY29sdW1uL2NvbHVtbi1jaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9saW5lL2xpbmUtY2hhcnQuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, Inject, PLATFORM_ID, input } from '@angular/core';
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
6
|
+
import * as am5xy from '@amcharts/amcharts5/xy';
|
|
7
|
+
import { ChartThemes } from '../theme/theme';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
// EXAMPLE CHART DATA
|
|
10
|
+
// testChartData = [
|
|
11
|
+
// {
|
|
12
|
+
// label: "col1",
|
|
13
|
+
// value: 100000
|
|
14
|
+
// },
|
|
15
|
+
// {
|
|
16
|
+
// label: "col2",
|
|
17
|
+
// value: 160000
|
|
18
|
+
// },
|
|
19
|
+
// {
|
|
20
|
+
// label: "col3",
|
|
21
|
+
// value: 80000
|
|
22
|
+
// }
|
|
23
|
+
// ];
|
|
24
|
+
export class ColumnChartComponent {
|
|
25
|
+
constructor(platformId, zone) {
|
|
26
|
+
this.platformId = platformId;
|
|
27
|
+
this.zone = zone;
|
|
28
|
+
this.data = input.required();
|
|
29
|
+
this.chartId = input.required(); // must be given unique names for all charts. Its because angular and am5 rendering methods needs unique id to draw different canvas
|
|
30
|
+
this.appName = input('yeap');
|
|
31
|
+
this.chartHeight = input(100);
|
|
32
|
+
this.chartColorSet = [];
|
|
33
|
+
}
|
|
34
|
+
browserOnly(f) {
|
|
35
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
36
|
+
this.zone.runOutsideAngular(() => {
|
|
37
|
+
f();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
// Chart code goes in here
|
|
43
|
+
this.browserOnly(() => {
|
|
44
|
+
switch (this.appName()) {
|
|
45
|
+
case 'yeap':
|
|
46
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
47
|
+
break;
|
|
48
|
+
case 'thor':
|
|
49
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
50
|
+
break;
|
|
51
|
+
case 'lena':
|
|
52
|
+
this.chartColorSet = ChartThemes.getLenaAppColors();
|
|
53
|
+
break;
|
|
54
|
+
case 'billing':
|
|
55
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
const root = am5.Root.new(this.chartId());
|
|
62
|
+
root._logo?.dispose();
|
|
63
|
+
root.setThemes([am5themes_Animated.new(root)]);
|
|
64
|
+
const chart = root.container.children.push(am5xy.XYChart.new(root, {
|
|
65
|
+
panY: false,
|
|
66
|
+
layout: root.verticalLayout
|
|
67
|
+
}));
|
|
68
|
+
const yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
69
|
+
renderer: am5xy.AxisRendererY.new(root, {})
|
|
70
|
+
}));
|
|
71
|
+
const xAxis = chart.xAxes.push(am5xy.CategoryAxis.new(root, {
|
|
72
|
+
renderer: am5xy.AxisRendererX.new(root, {}),
|
|
73
|
+
categoryField: 'label'
|
|
74
|
+
}));
|
|
75
|
+
xAxis.data.setAll(this.data());
|
|
76
|
+
const series = chart.series.push(am5xy.ColumnSeries.new(root, {
|
|
77
|
+
xAxis: xAxis,
|
|
78
|
+
yAxis: yAxis,
|
|
79
|
+
valueYField: 'value',
|
|
80
|
+
categoryXField: 'label',
|
|
81
|
+
stacked: true
|
|
82
|
+
}));
|
|
83
|
+
series.data.setAll(this.data());
|
|
84
|
+
xAxis.data.setAll(this.data());
|
|
85
|
+
series.columns.template.setAll({
|
|
86
|
+
stroke: am5.color(0xffffff),
|
|
87
|
+
strokeWidth: 2
|
|
88
|
+
});
|
|
89
|
+
series.columns.template.adapters.add('fill', (fill, target) => {
|
|
90
|
+
const dataContext = target.dataItem?.dataContext;
|
|
91
|
+
if (dataContext) {
|
|
92
|
+
const index = this.data().findIndex((item) => item.label === dataContext.label);
|
|
93
|
+
return am5.color(this.chartColorSet[index % this.chartColorSet.length]); // Sıralı renk seçimi
|
|
94
|
+
}
|
|
95
|
+
return fill;
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
ngOnDestroy() {
|
|
100
|
+
// Clean up chart when the component is removed
|
|
101
|
+
this.browserOnly(() => {
|
|
102
|
+
if (this.root) {
|
|
103
|
+
this.root.dispose();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ColumnChartComponent, deps: [{ token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: ColumnChartComponent, isStandalone: true, selector: "aril-column-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, chartId: { classPropertyName: "chartId", publicName: "chartId", isSignal: true, isRequired: true, transformFunction: null }, appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, chartHeight: { classPropertyName: "chartHeight", publicName: "chartHeight", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
109
|
+
}
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ColumnChartComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{
|
|
113
|
+
standalone: true,
|
|
114
|
+
selector: 'aril-column-chart',
|
|
115
|
+
// templateUrl: './column-chart.component.html',
|
|
116
|
+
template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`,
|
|
117
|
+
imports: [NgClass],
|
|
118
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
119
|
+
}]
|
|
120
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
121
|
+
type: Inject,
|
|
122
|
+
args: [PLATFORM_ID]
|
|
123
|
+
}] }, { type: i0.NgZone }] });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvY2hhcnRzL3NyYy9jb2x1bW4vY29sdW1uLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sa0JBQWtCLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxLQUFLLEtBQUssTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdDLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsS0FBSztBQUNMLG1CQUFtQjtBQUNuQixrQkFBa0I7QUFDbEIsTUFBTTtBQUNOLEtBQUs7QUFDTCxtQkFBbUI7QUFDbkIsa0JBQWtCO0FBQ2xCLE1BQU07QUFDTixLQUFLO0FBQ0wsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixLQUFLO0FBQ0wsS0FBSztBQVVMLE1BQU0sT0FBTyxvQkFBb0I7SUFHaEMsWUFBeUMsVUFBa0IsRUFBVSxJQUFZO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRWpGLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFlLENBQUM7UUFDckMsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQyxDQUFDLG9JQUFvSTtRQUN4SyxZQUFPLEdBQUcsS0FBSyxDQUFX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QUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBcEdXLG9CQUFvQixrQkFHWixXQUFXO2tHQUhuQixvQkFBb0Isa2xCQUp0QixxRkFBcUY7OzJGQUluRixvQkFBb0I7a0JBUmhDLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGdEQUFnRDtvQkFDaEQsUUFBUSxFQUFFLHFGQUFxRjtvQkFDL0YsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7OzBCQUlhLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgTmdab25lLCBQTEFURk9STV9JRCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCAqIGFzIGFtNSBmcm9tICdAYW1jaGFydHMvYW1jaGFydHM1JztcclxuaW1wb3J0IGFtNXRoZW1lc19BbmltYXRlZCBmcm9tICdAYW1jaGFydHMvYW1jaGFydHM1L3RoZW1lcy9BbmltYXRlZCc7XHJcbmltcG9ydCAqIGFzIGFtNXh5IGZyb20gJ0BhbWNoYXJ0cy9hbWNoYXJ0czUveHknO1xyXG5cclxuaW1wb3J0IHsgQ2hhcnRUaGVtZXMgfSBmcm9tICcuLi90aGVtZS90aGVtZSc7XHJcblxyXG5pbnRlcmZhY2UgZGF0YUl0ZW1zIHtcclxuXHRsYWJlbDogc3RyaW5nOyAvLyB0aGlzIGZpZWxkIGNhbiB1c2UgYXMgY2F0ZWdvcnlcclxuXHR2YWx1ZTogbnVtYmVyO1xyXG5cdHZhbHVlMj86IG51bWJlcjtcclxufVxyXG5cclxudHlwZSBhcHBOYW1lcyA9ICd0aG9yJyB8ICdsZW5hJyB8ICdiaWxsaW5nJyB8ICd5ZWFwJztcclxuXHJcbi8vIEVYQU1QTEUgQ0hBUlQgREFUQVxyXG4vLyB0ZXN0Q2hhcnREYXRhID0gW1xyXG4vLyBcdHtcclxuLy8gXHRcdGxhYmVsOiBcImNvbDFcIixcclxuLy8gXHRcdHZhbHVlOiAxMDAwMDBcclxuLy8gXHR9LFxyXG4vLyBcdHtcclxuLy8gXHRcdGxhYmVsOiBcImNvbDJcIixcclxuLy8gXHRcdHZhbHVlOiAxNjAwMDBcclxuLy8gXHR9LFxyXG4vLyBcdHtcclxuLy8gXHRcdGxhYmVsOiBcImNvbDNcIixcclxuLy8gXHRcdHZhbHVlOiA4MDAwMFxyXG4vLyBcdH1cclxuLy8gXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLWNvbHVtbi1jaGFydCcsXHJcblx0Ly8gdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcblx0dGVtcGxhdGU6IGA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDp7eyBjaGFydEhlaWdodCgpIH19cHg7XCIgaWQ9XCJ7eyBjaGFydElkKCkgfX1cIj48L2Rpdj5gLFxyXG5cdGltcG9ydHM6IFtOZ0NsYXNzXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQ2hhcnRDb21wb25lbnQge1xyXG5cdHByaXZhdGUgcm9vdCE6IGFtNS5Sb290O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxkYXRhSXRlbXNbXT4oKTtcclxuXHRjaGFydElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpOyAvLyBtdXN0IGJlIGdpdmVuIHVuaXF1ZSBuYW1lcyBmb3IgYWxsIGNoYXJ0cy4gSXRzIGJlY2F1c2UgYW5ndWxhciBhbmQgYW01IHJlbmRlcmluZyBtZXRob2RzIG5lZWRzIHVuaXF1ZSBpZCB0byBkcmF3IGRpZmZlcmVudCBjYW52YXNcclxuXHRhcHBOYW1lID0gaW5wdXQ8YXBwTmFtZXM+KCd5ZWFwJyk7XHJcblx0Y2hhcnRIZWlnaHQgPSBpbnB1dDxudW1iZXI+KDEwMCk7XHJcblx0Y2hhcnRDb2xvclNldDogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0YnJvd3Nlck9ubHkoZjogKCkgPT4gdm9pZCkge1xyXG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuXHRcdFx0XHRmKCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0Ly8gQ2hhcnQgY29kZSBnb2VzIGluIGhlcmVcclxuXHRcdHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG5cdFx0XHRzd2l0Y2ggKHRoaXMuYXBwTmFtZSgpKSB7XHJcblx0XHRcdFx0Y2FzZSAneWVhcCc6XHJcblx0XHRcdFx0XHR0aGlzLmNoYXJ0Q29sb3JTZXQgPSBDaGFydFRoZW1lcy5nZXRZZWFwQXBwQ29sb3JzKCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlICd0aG9yJzpcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnRDb2xvclNldCA9IENoYXJ0VGhlbWVzLmdldFRob3JBcHBDb2xvcnMoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgJ2xlbmEnOlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0TGVuYUFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSAnYmlsbGluZyc6XHJcblx0XHRcdFx0XHR0aGlzLmNoYXJ0Q29sb3JTZXQgPSBDaGFydFRoZW1lcy5nZXRUaG9yQXBwQ29sb3JzKCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0WWVhcEFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3Qgcm9vdCA9IGFtNS5Sb290Lm5ldyh0aGlzLmNoYXJ0SWQoKSk7XHJcblx0XHRcdHJvb3QuX2xvZ28/LmRpc3Bvc2UoKTtcclxuXHRcdFx0cm9vdC5zZXRUaGVtZXMoW2FtNXRoZW1lc19BbmltYXRlZC5uZXcocm9vdCldKTtcclxuXHJcblx0XHRcdGNvbnN0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuXHRcdFx0XHRhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcblx0XHRcdFx0XHRwYW5ZOiBmYWxzZSxcclxuXHRcdFx0XHRcdGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRjb25zdCB5QXhpcyA9IGNoYXJ0LnlBeGVzLnB1c2goXHJcblx0XHRcdFx0YW01eHkuVmFsdWVBeGlzLm5ldyhyb290LCB7XHJcblx0XHRcdFx0XHRyZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdGNvbnN0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuXHRcdFx0XHRhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcblx0XHRcdFx0XHRjYXRlZ29yeUZpZWxkOiAnbGFiZWwnXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KTtcclxuXHRcdFx0eEF4aXMuZGF0YS5zZXRBbGwodGhpcy5kYXRhKCkpO1xyXG5cclxuXHRcdFx0Y29uc3Qgc2VyaWVzID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcblx0XHRcdFx0YW01eHkuQ29sdW1uU2VyaWVzLm5ldyhyb290LCB7XHJcblx0XHRcdFx0XHR4QXhpczogeEF4aXMsXHJcblx0XHRcdFx0XHR5QXhpczogeUF4aXMsXHJcblx0XHRcdFx0XHR2YWx1ZVlGaWVsZDogJ3ZhbHVlJyxcclxuXHRcdFx0XHRcdGNhdGVnb3J5WEZpZWxkOiAnbGFiZWwnLFxyXG5cdFx0XHRcdFx0c3RhY2tlZDogdHJ1ZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRzZXJpZXMuZGF0YS5zZXRBbGwodGhpcy5kYXRhKCkpO1xyXG5cdFx0XHR4QXhpcy5kYXRhLnNldEFsbCh0aGlzLmRhdGEoKSk7XHJcblxyXG5cdFx0XHRzZXJpZXMuY29sdW1ucy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG5cdFx0XHRcdHN0cm9rZTogYW01LmNvbG9yKDB4ZmZmZmZmKSxcclxuXHRcdFx0XHRzdHJva2VXaWR0aDogMlxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdHNlcmllcy5jb2x1bW5zLnRlbXBsYXRlLmFkYXB0ZXJzLmFkZCgnZmlsbCcsIChmaWxsLCB0YXJnZXQpID0+IHtcclxuXHRcdFx0XHRjb25zdCBkYXRhQ29udGV4dDogYW55ID0gdGFyZ2V0LmRhdGFJdGVtPy5kYXRhQ29udGV4dDtcclxuXHRcdFx0XHRpZiAoZGF0YUNvbnRleHQpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhpcy5kYXRhKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmxhYmVsID09PSBkYXRhQ29udGV4dC5sYWJlbCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gYW01LmNvbG9yKHRoaXMuY2hhcnRDb2xvclNldFtpbmRleCAlIHRoaXMuY2hhcnRDb2xvclNldC5sZW5ndGhdKTsgLy8gU8SxcmFsxLEgcmVuayBzZcOnaW1pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBmaWxsO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHQvLyBDbGVhbiB1cCBjaGFydCB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVtb3ZlZFxyXG5cdFx0dGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnJvb3QpIHtcclxuXHRcdFx0XHR0aGlzLnJvb3QuZGlzcG9zZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, Inject, PLATFORM_ID, input } from '@angular/core';
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
6
|
+
import * as am5xy from '@amcharts/amcharts5/xy';
|
|
7
|
+
import { ChartThemes } from '../theme/theme';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
// EXAMPLE CHART DATA
|
|
10
|
+
// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/
|
|
11
|
+
// testChartData = [
|
|
12
|
+
// {
|
|
13
|
+
// date: 1732628383422,
|
|
14
|
+
// value: 100000
|
|
15
|
+
// },
|
|
16
|
+
// {
|
|
17
|
+
// date: 1732638383422,
|
|
18
|
+
// value: 160000
|
|
19
|
+
// },
|
|
20
|
+
// {
|
|
21
|
+
// date: 1732658383422,
|
|
22
|
+
// value: 80000
|
|
23
|
+
// }
|
|
24
|
+
// ];
|
|
25
|
+
export class LineChartComponent {
|
|
26
|
+
constructor(platformId, zone) {
|
|
27
|
+
this.platformId = platformId;
|
|
28
|
+
this.zone = zone;
|
|
29
|
+
this.data = input.required();
|
|
30
|
+
this.chartId = input.required(); // must be given unique names for all charts. Its because angular and am5 rendering methods needs unique id to draw different canvas
|
|
31
|
+
this.appName = input('yeap');
|
|
32
|
+
this.timeUnit = input('day');
|
|
33
|
+
this.chartHeight = input(100);
|
|
34
|
+
this.chartColorSet = [];
|
|
35
|
+
}
|
|
36
|
+
browserOnly(f) {
|
|
37
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
38
|
+
this.zone.runOutsideAngular(() => {
|
|
39
|
+
f();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
ngAfterViewInit() {
|
|
44
|
+
// Chart code goes in here
|
|
45
|
+
this.browserOnly(() => {
|
|
46
|
+
switch (this.appName()) {
|
|
47
|
+
case 'yeap':
|
|
48
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
49
|
+
break;
|
|
50
|
+
case 'thor':
|
|
51
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
52
|
+
break;
|
|
53
|
+
case 'lena':
|
|
54
|
+
this.chartColorSet = ChartThemes.getLenaAppColors();
|
|
55
|
+
break;
|
|
56
|
+
case 'billing':
|
|
57
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
const root = am5.Root.new('lineChart');
|
|
64
|
+
root._logo?.dispose();
|
|
65
|
+
root.setThemes([am5themes_Animated.new(root)]);
|
|
66
|
+
const chart = root.container.children.push(am5xy.XYChart.new(root, {
|
|
67
|
+
panX: false,
|
|
68
|
+
panY: false,
|
|
69
|
+
wheelX: 'panX',
|
|
70
|
+
wheelY: 'zoomX',
|
|
71
|
+
paddingLeft: 0
|
|
72
|
+
}));
|
|
73
|
+
const cursor = chart.set('cursor', am5xy.XYCursor.new(root, {
|
|
74
|
+
behavior: 'zoomX'
|
|
75
|
+
}));
|
|
76
|
+
cursor.lineY.set('visible', false);
|
|
77
|
+
const xAxis = chart.xAxes.push(am5xy.DateAxis.new(root, {
|
|
78
|
+
maxDeviation: 0,
|
|
79
|
+
baseInterval: {
|
|
80
|
+
timeUnit: this.timeUnit(),
|
|
81
|
+
count: 1
|
|
82
|
+
},
|
|
83
|
+
markUnitChange: false,
|
|
84
|
+
gridIntervals: [
|
|
85
|
+
{ timeUnit: 'day', count: 1 },
|
|
86
|
+
{ timeUnit: 'month', count: 1 },
|
|
87
|
+
{ timeUnit: 'year', count: 1 }
|
|
88
|
+
],
|
|
89
|
+
tooltipDateFormat: 'dd-MM-yyyy',
|
|
90
|
+
renderer: am5xy.AxisRendererX.new(root, {
|
|
91
|
+
minorGridEnabled: true,
|
|
92
|
+
minGridDistance: 200,
|
|
93
|
+
minorLabelsEnabled: true
|
|
94
|
+
}),
|
|
95
|
+
tooltip: am5.Tooltip.new(root, {})
|
|
96
|
+
}));
|
|
97
|
+
xAxis.set('minorDateFormats', {
|
|
98
|
+
day: 'dd',
|
|
99
|
+
month: 'MM',
|
|
100
|
+
year: 'yyyy'
|
|
101
|
+
});
|
|
102
|
+
xAxis.get('dateFormats')['day'] = 'dd/MM/yyyy';
|
|
103
|
+
const yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
104
|
+
renderer: am5xy.AxisRendererY.new(root, {})
|
|
105
|
+
}));
|
|
106
|
+
const series = chart.series.push(am5xy.LineSeries.new(root, {
|
|
107
|
+
name: 'Series',
|
|
108
|
+
xAxis: xAxis,
|
|
109
|
+
yAxis: yAxis,
|
|
110
|
+
valueYField: 'value',
|
|
111
|
+
valueXField: 'date',
|
|
112
|
+
stroke: am5.color(this.chartColorSet[0]),
|
|
113
|
+
tooltip: am5.Tooltip.new(root, {
|
|
114
|
+
labelText: '{valueY}'
|
|
115
|
+
})
|
|
116
|
+
}));
|
|
117
|
+
series.bullets.push(function () {
|
|
118
|
+
const bulletCircle = am5.Circle.new(root, {
|
|
119
|
+
radius: 5,
|
|
120
|
+
fill: series.get('fill')
|
|
121
|
+
});
|
|
122
|
+
return am5.Bullet.new(root, {
|
|
123
|
+
sprite: bulletCircle
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
chart.set('scrollbarX', am5.Scrollbar.new(root, {
|
|
127
|
+
orientation: 'horizontal'
|
|
128
|
+
}));
|
|
129
|
+
series.set('fill', am5.color(this.chartColorSet[0])); // set Series color to red
|
|
130
|
+
// series.fills.template.setAll({
|
|
131
|
+
// fillOpacity: 0.5,
|
|
132
|
+
// visible: true
|
|
133
|
+
// color
|
|
134
|
+
// });
|
|
135
|
+
series.data.setAll(this.data());
|
|
136
|
+
series.appear(1000);
|
|
137
|
+
chart.appear(1000, 100);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
ngOnDestroy() {
|
|
141
|
+
// Clean up chart when the component is removed
|
|
142
|
+
this.browserOnly(() => {
|
|
143
|
+
if (this.root) {
|
|
144
|
+
this.root.dispose();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LineChartComponent, deps: [{ token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: LineChartComponent, isStandalone: true, selector: "aril-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, chartId: { classPropertyName: "chartId", publicName: "chartId", isSignal: true, isRequired: true, transformFunction: null }, appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, timeUnit: { classPropertyName: "timeUnit", publicName: "timeUnit", isSignal: true, isRequired: false, transformFunction: null }, chartHeight: { classPropertyName: "chartHeight", publicName: "chartHeight", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
150
|
+
}
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LineChartComponent, decorators: [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{
|
|
154
|
+
standalone: true,
|
|
155
|
+
selector: 'aril-line-chart',
|
|
156
|
+
template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`,
|
|
157
|
+
imports: [NgClass],
|
|
158
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
159
|
+
}]
|
|
160
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
161
|
+
type: Inject,
|
|
162
|
+
args: [PLATFORM_ID]
|
|
163
|
+
}] }, { type: i0.NgZone }] });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoYXJ0cy9zcmMvbGluZS9saW5lLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sa0JBQWtCLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxLQUFLLEtBQUssTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdDLHFCQUFxQjtBQUNyQixtRUFBbUU7QUFDbkUsb0JBQW9CO0FBQ3BCLEtBQUs7QUFDTCx5QkFBeUI7QUFDekIsa0JBQWtCO0FBQ2xCLE1BQU07QUFDTixLQUFLO0FBQ0wseUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQixNQUFNO0FBQ04sS0FBSztBQUNMLHlCQUF5QjtBQUN6QixpQkFBaUI7QUFDakIsS0FBSztBQUNMLEtBQUs7QUFTTCxNQUFNLE9BQU8sa0JBQWtCO0lBRzlCLFlBQXlDLFVBQWtCLEVBQVUsSUFBWTtRQUF4QyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUVqRixTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZSxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUMsQ0FBQyxvSUFBb0k7UUFDeEssWUFBTyxHQUFHLEtBQUssQ0FBVyxNQUFNLENBQUMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFXLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLGtCQUFhLEdBQWEsRUFBRSxDQUFDO0lBUHVELENBQUM7SUFTckYsV0FBVyxDQUFDLENBQWE7UUFDeEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDaEMsQ0FBQyxFQUFFLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7SUFDRixDQUFDO0lBRUQsZUFBZTtRQUNkLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLE1BQU07b0JBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUCxLQUFLLE1BQU07b0JBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUCxLQUFLLE1BQU07b0JBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUCxLQUFLLFNBQVM7b0JBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUDtvQkFDQyxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNwRCxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE1BQU0sRUFBRSxPQUFPO2dCQUNmLFdBQVcsRUFBRSxDQUFDO2FBQ2QsQ0FBQyxDQUNGLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUN2QixRQUFRLEVBQ1IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUN4QixRQUFRLEVBQUUsT0FBTzthQUNqQixDQUFDLENBQ0YsQ0FBQztZQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVuQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUN4QixZQUFZLEVBQUUsQ0FBQztnQkFDZixZQUFZLEVBQUU7b0JBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3pCLEtBQUssRUFBRSxDQUFDO2lCQUNSO2dCQUNELGNBQWMsRUFBRSxLQUFLO2dCQUNyQixhQUFhLEVBQUU7b0JBQ2QsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7b0JBQzdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO29CQUMvQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtpQkFDOUI7Z0JBQ0QsaUJBQWlCLEVBQUUsWUFBWTtnQkFDL0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtvQkFDdkMsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLGtCQUFrQixFQUFFLElBQUk7aUJBQ3hCLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7YUFDbEMsQ0FBQyxDQUNGLENBQUM7WUFFRixLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFO2dCQUM3QixHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsTUFBTTthQUNaLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBRWhELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM3QixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pCLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQzNDLENBQUMsQ0FDRixDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQy9CLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDMUIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO29CQUM5QixTQUFTLEVBQUUsVUFBVTtpQkFDckIsQ0FBQzthQUNGLENBQUMsQ0FDRixDQUFDO1lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtvQkFDekMsTUFBTSxFQUFFLENBQUM7b0JBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2lCQUN4QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7b0JBQzNCLE1BQU0sRUFBRSxZQUFZO2lCQUNwQixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxHQUFHLENBQ1IsWUFBWSxFQUNaLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDdkIsV0FBVyxFQUFFLFlBQVk7YUFDekIsQ0FBQyxDQUNGLENBQUM7WUFFRixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1lBQ2hGLGlDQUFpQztZQUNqQyxxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxNQUFNO1lBRU4sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1YsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F0Slcsa0JBQWtCLGtCQUdWLFdBQVc7a0dBSG5CLGtCQUFrQixpdEJBSnBCLHFGQUFxRjs7MkZBSW5GLGtCQUFrQjtrQkFQOUIsU0FBUzttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLHFGQUFxRjtvQkFDL0YsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7OzBCQUlhLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgTmdab25lLCBQTEFURk9STV9JRCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCAqIGFzIGFtNSBmcm9tICdAYW1jaGFydHMvYW1jaGFydHM1JztcclxuaW1wb3J0IGFtNXRoZW1lc19BbmltYXRlZCBmcm9tICdAYW1jaGFydHMvYW1jaGFydHM1L3RoZW1lcy9BbmltYXRlZCc7XHJcbmltcG9ydCAqIGFzIGFtNXh5IGZyb20gJ0BhbWNoYXJ0cy9hbWNoYXJ0czUveHknO1xyXG5cclxuaW1wb3J0IHsgQ2hhcnRUaGVtZXMgfSBmcm9tICcuLi90aGVtZS90aGVtZSc7XHJcblxyXG5pbnRlcmZhY2UgZGF0YUl0ZW1zIHtcclxuXHRkYXRlOiBudW1iZXI7IC8vIHRoaXMgZmllbGQgY2FuIHVzZSBhcyBjYXRlZ29yeVxyXG5cdHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbnR5cGUgYXBwTmFtZXMgPSAndGhvcicgfCAnbGVuYScgfCAnYmlsbGluZycgfCAneWVhcCc7XHJcbnR5cGUgdGltZVVuaXQgPSAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgfCAnd2VlaycgfCAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnO1xyXG5cclxuLy8gRVhBTVBMRSBDSEFSVCBEQVRBXHJcbi8vIGh0dHBzOi8vd3d3LmFtY2hhcnRzLmNvbS9kb2NzL3Y1L2NoYXJ0cy94eS1jaGFydC9heGVzL2RhdGUtYXhpcy9cclxuLy8gdGVzdENoYXJ0RGF0YSA9IFtcclxuLy8gXHR7XHJcbi8vIFx0XHRkYXRlOiAxNzMyNjI4MzgzNDIyLFxyXG4vLyBcdFx0dmFsdWU6IDEwMDAwMFxyXG4vLyBcdH0sXHJcbi8vIFx0e1xyXG4vLyBcdFx0ZGF0ZTogMTczMjYzODM4MzQyMixcclxuLy8gXHRcdHZhbHVlOiAxNjAwMDBcclxuLy8gXHR9LFxyXG4vLyBcdHtcclxuLy8gXHRcdGRhdGU6IDE3MzI2NTgzODM0MjIsXHJcbi8vIFx0XHR2YWx1ZTogODAwMDBcclxuLy8gXHR9XHJcbi8vIF07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1saW5lLWNoYXJ0JyxcclxuXHR0ZW1wbGF0ZTogYDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0Ont7IGNoYXJ0SGVpZ2h0KCkgfX1weDtcIiBpZD1cInt7IGNoYXJ0SWQoKSB9fVwiPjwvZGl2PmAsXHJcblx0aW1wb3J0czogW05nQ2xhc3NdLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5lQ2hhcnRDb21wb25lbnQge1xyXG5cdHByaXZhdGUgcm9vdCE6IGFtNS5Sb290O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxkYXRhSXRlbXNbXT4oKTtcclxuXHRjaGFydElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpOyAvLyBtdXN0IGJlIGdpdmVuIHVuaXF1ZSBuYW1lcyBmb3IgYWxsIGNoYXJ0cy4gSXRzIGJlY2F1c2UgYW5ndWxhciBhbmQgYW01IHJlbmRlcmluZyBtZXRob2RzIG5lZWRzIHVuaXF1ZSBpZCB0byBkcmF3IGRpZmZlcmVudCBjYW52YXNcclxuXHRhcHBOYW1lID0gaW5wdXQ8YXBwTmFtZXM+KCd5ZWFwJyk7XHJcblx0dGltZVVuaXQgPSBpbnB1dDx0aW1lVW5pdD4oJ2RheScpO1xyXG5cdGNoYXJ0SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyPigxMDApO1xyXG5cdGNoYXJ0Q29sb3JTZXQ6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdGJyb3dzZXJPbmx5KGY6ICgpID0+IHZvaWQpIHtcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdFx0ZigpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdC8vIENoYXJ0IGNvZGUgZ29lcyBpbiBoZXJlXHJcblx0XHR0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuXHRcdFx0c3dpdGNoICh0aGlzLmFwcE5hbWUoKSkge1xyXG5cdFx0XHRcdGNhc2UgJ3llYXAnOlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0WWVhcEFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSAndGhvcic6XHJcblx0XHRcdFx0XHR0aGlzLmNoYXJ0Q29sb3JTZXQgPSBDaGFydFRoZW1lcy5nZXRUaG9yQXBwQ29sb3JzKCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlICdsZW5hJzpcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnRDb2xvclNldCA9IENoYXJ0VGhlbWVzLmdldExlbmFBcHBDb2xvcnMoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgJ2JpbGxpbmcnOlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0VGhvckFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnRDb2xvclNldCA9IENoYXJ0VGhlbWVzLmdldFllYXBBcHBDb2xvcnMoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IHJvb3QgPSBhbTUuUm9vdC5uZXcoJ2xpbmVDaGFydCcpO1xyXG5cdFx0XHRyb290Ll9sb2dvPy5kaXNwb3NlKCk7XHJcblx0XHRcdHJvb3Quc2V0VGhlbWVzKFthbTV0aGVtZXNfQW5pbWF0ZWQubmV3KHJvb3QpXSk7XHJcblxyXG5cdFx0XHRjb25zdCBjaGFydCA9IHJvb3QuY29udGFpbmVyLmNoaWxkcmVuLnB1c2goXHJcblx0XHRcdFx0YW01eHkuWFlDaGFydC5uZXcocm9vdCwge1xyXG5cdFx0XHRcdFx0cGFuWDogZmFsc2UsXHJcblx0XHRcdFx0XHRwYW5ZOiBmYWxzZSxcclxuXHRcdFx0XHRcdHdoZWVsWDogJ3BhblgnLFxyXG5cdFx0XHRcdFx0d2hlZWxZOiAnem9vbVgnLFxyXG5cdFx0XHRcdFx0cGFkZGluZ0xlZnQ6IDBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y29uc3QgY3Vyc29yID0gY2hhcnQuc2V0KFxyXG5cdFx0XHRcdCdjdXJzb3InLFxyXG5cdFx0XHRcdGFtNXh5LlhZQ3Vyc29yLm5ldyhyb290LCB7XHJcblx0XHRcdFx0XHRiZWhhdmlvcjogJ3pvb21YJ1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdCk7XHJcblx0XHRcdGN1cnNvci5saW5lWS5zZXQoJ3Zpc2libGUnLCBmYWxzZSk7XHJcblxyXG5cdFx0XHRjb25zdCB4QXhpcyA9IGNoYXJ0LnhBeGVzLnB1c2goXHJcblx0XHRcdFx0YW01eHkuRGF0ZUF4aXMubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdG1heERldmlhdGlvbjogMCxcclxuXHRcdFx0XHRcdGJhc2VJbnRlcnZhbDoge1xyXG5cdFx0XHRcdFx0XHR0aW1lVW5pdDogdGhpcy50aW1lVW5pdCgpLFxyXG5cdFx0XHRcdFx0XHRjb3VudDogMVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1hcmtVbml0Q2hhbmdlOiBmYWxzZSxcclxuXHRcdFx0XHRcdGdyaWRJbnRlcnZhbHM6IFtcclxuXHRcdFx0XHRcdFx0eyB0aW1lVW5pdDogJ2RheScsIGNvdW50OiAxIH0sXHJcblx0XHRcdFx0XHRcdHsgdGltZVVuaXQ6ICdtb250aCcsIGNvdW50OiAxIH0sXHJcblx0XHRcdFx0XHRcdHsgdGltZVVuaXQ6ICd5ZWFyJywgY291bnQ6IDEgfVxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdHRvb2x0aXBEYXRlRm9ybWF0OiAnZGQtTU0teXl5eScsXHJcblx0XHRcdFx0XHRyZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWC5uZXcocm9vdCwge1xyXG5cdFx0XHRcdFx0XHRtaW5vckdyaWRFbmFibGVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRtaW5HcmlkRGlzdGFuY2U6IDIwMCxcclxuXHRcdFx0XHRcdFx0bWlub3JMYWJlbHNFbmFibGVkOiB0cnVlXHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvb2x0aXA6IGFtNS5Ub29sdGlwLm5ldyhyb290LCB7fSlcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0eEF4aXMuc2V0KCdtaW5vckRhdGVGb3JtYXRzJywge1xyXG5cdFx0XHRcdGRheTogJ2RkJyxcclxuXHRcdFx0XHRtb250aDogJ01NJyxcclxuXHRcdFx0XHR5ZWFyOiAneXl5eSdcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHR4QXhpcy5nZXQoJ2RhdGVGb3JtYXRzJykhWydkYXknXSA9ICdkZC9NTS95eXl5JztcclxuXHJcblx0XHRcdGNvbnN0IHlBeGlzID0gY2hhcnQueUF4ZXMucHVzaChcclxuXHRcdFx0XHRhbTV4eS5WYWx1ZUF4aXMubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJZLm5ldyhyb290LCB7fSlcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y29uc3Qgc2VyaWVzID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcblx0XHRcdFx0YW01eHkuTGluZVNlcmllcy5uZXcocm9vdCwge1xyXG5cdFx0XHRcdFx0bmFtZTogJ1NlcmllcycsXHJcblx0XHRcdFx0XHR4QXhpczogeEF4aXMsXHJcblx0XHRcdFx0XHR5QXhpczogeUF4aXMsXHJcblx0XHRcdFx0XHR2YWx1ZVlGaWVsZDogJ3ZhbHVlJyxcclxuXHRcdFx0XHRcdHZhbHVlWEZpZWxkOiAnZGF0ZScsXHJcblx0XHRcdFx0XHRzdHJva2U6IGFtNS5jb2xvcih0aGlzLmNoYXJ0Q29sb3JTZXRbMF0pLFxyXG5cdFx0XHRcdFx0dG9vbHRpcDogYW01LlRvb2x0aXAubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdFx0bGFiZWxUZXh0OiAne3ZhbHVlWX0nXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRzZXJpZXMuYnVsbGV0cy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRjb25zdCBidWxsZXRDaXJjbGUgPSBhbTUuQ2lyY2xlLm5ldyhyb290LCB7XHJcblx0XHRcdFx0XHRyYWRpdXM6IDUsXHJcblx0XHRcdFx0XHRmaWxsOiBzZXJpZXMuZ2V0KCdmaWxsJylcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRyZXR1cm4gYW01LkJ1bGxldC5uZXcocm9vdCwge1xyXG5cdFx0XHRcdFx0c3ByaXRlOiBidWxsZXRDaXJjbGVcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRjaGFydC5zZXQoXHJcblx0XHRcdFx0J3Njcm9sbGJhclgnLFxyXG5cdFx0XHRcdGFtNS5TY3JvbGxiYXIubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0c2VyaWVzLnNldCgnZmlsbCcsIGFtNS5jb2xvcih0aGlzLmNoYXJ0Q29sb3JTZXRbMF0pKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuXHRcdFx0Ly8gc2VyaWVzLmZpbGxzLnRlbXBsYXRlLnNldEFsbCh7XHJcblx0XHRcdC8vIFx0ZmlsbE9wYWNpdHk6IDAuNSxcclxuXHRcdFx0Ly8gXHR2aXNpYmxlOiB0cnVlXHJcblx0XHRcdC8vIFx0Y29sb3JcclxuXHRcdFx0Ly8gfSk7XHJcblxyXG5cdFx0XHRzZXJpZXMuZGF0YS5zZXRBbGwodGhpcy5kYXRhKCkpO1xyXG5cdFx0XHRzZXJpZXMuYXBwZWFyKDEwMDApO1xyXG5cdFx0XHRjaGFydC5hcHBlYXIoMTAwMCwgMTAwKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHQvLyBDbGVhbiB1cCBjaGFydCB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVtb3ZlZFxyXG5cdFx0dGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnJvb3QpIHtcclxuXHRcdFx0XHR0aGlzLnJvb3QuZGlzcG9zZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, Inject, PLATFORM_ID, input } from '@angular/core';
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import * as am5percent from '@amcharts/amcharts5/percent';
|
|
6
|
+
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
7
|
+
import { ChartThemes } from '../theme/theme';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
// EXAMPLE CHART DATA
|
|
10
|
+
// testChartData = [
|
|
11
|
+
// {
|
|
12
|
+
// label: "part1",
|
|
13
|
+
// value: 100000
|
|
14
|
+
// },
|
|
15
|
+
// {
|
|
16
|
+
// label: "part1",
|
|
17
|
+
// value: 160000
|
|
18
|
+
// },
|
|
19
|
+
// {
|
|
20
|
+
// label: "part1",
|
|
21
|
+
// value: 80000
|
|
22
|
+
// }
|
|
23
|
+
// ];
|
|
24
|
+
export class PieChartComponent {
|
|
25
|
+
constructor(platformId, zone) {
|
|
26
|
+
this.platformId = platformId;
|
|
27
|
+
this.zone = zone;
|
|
28
|
+
this.data = input.required();
|
|
29
|
+
this.chartId = input.required(); // must be given unique names for all charts. Its because angular and am5 rendering methods needs unique id to draw different canvas
|
|
30
|
+
this.appName = input('yeap');
|
|
31
|
+
this.chartColorSet = [];
|
|
32
|
+
this.chartHeight = input.required();
|
|
33
|
+
}
|
|
34
|
+
browserOnly(f) {
|
|
35
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
36
|
+
this.zone.runOutsideAngular(() => {
|
|
37
|
+
f();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
// Chart code goes in here
|
|
43
|
+
this.browserOnly(() => {
|
|
44
|
+
switch (this.appName()) {
|
|
45
|
+
case 'yeap':
|
|
46
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
47
|
+
break;
|
|
48
|
+
case 'thor':
|
|
49
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
50
|
+
break;
|
|
51
|
+
case 'lena':
|
|
52
|
+
this.chartColorSet = ChartThemes.getLenaAppColors();
|
|
53
|
+
break;
|
|
54
|
+
case 'billing':
|
|
55
|
+
this.chartColorSet = ChartThemes.getThorAppColors();
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
this.chartColorSet = ChartThemes.getYeapAppColors();
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
const root = am5.Root.new('pieChart');
|
|
62
|
+
root._logo?.dispose();
|
|
63
|
+
root.setThemes([am5themes_Animated.new(root)]);
|
|
64
|
+
const chart = root.container.children.push(am5percent.PieChart.new(root, {}));
|
|
65
|
+
const series = chart.series.push(am5percent.PieSeries.new(root, {
|
|
66
|
+
name: 'Series',
|
|
67
|
+
categoryField: 'label',
|
|
68
|
+
valueField: 'value',
|
|
69
|
+
fillField: 'color'
|
|
70
|
+
}));
|
|
71
|
+
series.slices.template.adapters.add('fill', (fill, target) => {
|
|
72
|
+
const dataContext = target.dataItem?.dataContext;
|
|
73
|
+
if (dataContext) {
|
|
74
|
+
const index = this.data().findIndex((item) => item.label === dataContext.label);
|
|
75
|
+
return am5.color(this.chartColorSet[index % this.chartColorSet.length]); // Sıralı renk seçimi
|
|
76
|
+
}
|
|
77
|
+
return fill;
|
|
78
|
+
});
|
|
79
|
+
series.slices.template.setAll({
|
|
80
|
+
stroke: am5.color(0xffffff),
|
|
81
|
+
strokeWidth: 2
|
|
82
|
+
});
|
|
83
|
+
series.data.setAll(this.data());
|
|
84
|
+
const legend = chart.children.push(am5.Legend.new(root, {
|
|
85
|
+
centerX: am5.percent(50),
|
|
86
|
+
x: am5.percent(50),
|
|
87
|
+
layout: root.horizontalLayout
|
|
88
|
+
}));
|
|
89
|
+
legend.data.setAll(series.dataItems);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
ngOnDestroy() {
|
|
93
|
+
// Clean up chart when the component is removed
|
|
94
|
+
this.browserOnly(() => {
|
|
95
|
+
if (this.root) {
|
|
96
|
+
this.root.dispose();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PieChartComponent, deps: [{ token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: PieChartComponent, isStandalone: true, selector: "aril-pie-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, chartId: { classPropertyName: "chartId", publicName: "chartId", isSignal: true, isRequired: true, transformFunction: null }, appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, chartHeight: { classPropertyName: "chartHeight", publicName: "chartHeight", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PieChartComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{
|
|
106
|
+
standalone: true,
|
|
107
|
+
selector: 'aril-pie-chart',
|
|
108
|
+
template: `<div style="width: 100%; height:{{ chartHeight() }}px;" id="{{ chartId() }}"></div>`,
|
|
109
|
+
imports: [NgClass],
|
|
110
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
111
|
+
}]
|
|
112
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
113
|
+
type: Inject,
|
|
114
|
+
args: [PLATFORM_ID]
|
|
115
|
+
}] }, { type: i0.NgZone }] });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvY2hhcnRzL3NyYy9waWUvcGllLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdDLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsS0FBSztBQUNMLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsTUFBTTtBQUNOLEtBQUs7QUFDTCxvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLE1BQU07QUFDTixLQUFLO0FBQ0wsb0JBQW9CO0FBQ3BCLGlCQUFpQjtBQUNqQixLQUFLO0FBQ0wsS0FBSztBQVNMLE1BQU0sT0FBTyxpQkFBaUI7SUFHN0IsWUFBeUMsVUFBa0IsRUFBVSxJQUFZO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRWpGLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFlLENBQUM7UUFDckMsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQyxDQUFDLG9JQUFvSTtRQUN4SyxZQUFPLEdBQUcsS0FBSyxDQUFXLE1BQU0sQ0FB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QVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE5nWm9uZSwgUExBVEZPUk1fSUQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBhbTUgZnJvbSAnQGFtY2hhcnRzL2FtY2hhcnRzNSc7XHJcbmltcG9ydCAqIGFzIGFtNXBlcmNlbnQgZnJvbSAnQGFtY2hhcnRzL2FtY2hhcnRzNS9wZXJjZW50JztcclxuaW1wb3J0IGFtNXRoZW1lc19BbmltYXRlZCBmcm9tICdAYW1jaGFydHMvYW1jaGFydHM1L3RoZW1lcy9BbmltYXRlZCc7XHJcblxyXG5pbXBvcnQgeyBDaGFydFRoZW1lcyB9IGZyb20gJy4uL3RoZW1lL3RoZW1lJztcclxuXHJcbi8vIGltcG9ydCAqIGFzIGFtNWNvbG9yIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L2NvbG9yXCI7XHJcbmludGVyZmFjZSBkYXRhSXRlbXMge1xyXG5cdGxhYmVsOiBzdHJpbmc7IC8vIHRoaXMgZmllbGQgY2FuIHVzZSBhcyBjYXRlZ29yeVxyXG5cdHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbnR5cGUgYXBwTmFtZXMgPSAndGhvcicgfCAnbGVuYScgfCAnYmlsbGluZycgfCAneWVhcCc7XHJcblxyXG4vLyBFWEFNUExFIENIQVJUIERBVEFcclxuLy8gdGVzdENoYXJ0RGF0YSA9IFtcclxuLy8gXHR7XHJcbi8vIFx0XHRsYWJlbDogXCJwYXJ0MVwiLFxyXG4vLyBcdFx0dmFsdWU6IDEwMDAwMFxyXG4vLyBcdH0sXHJcbi8vIFx0e1xyXG4vLyBcdFx0bGFiZWw6IFwicGFydDFcIixcclxuLy8gXHRcdHZhbHVlOiAxNjAwMDBcclxuLy8gXHR9LFxyXG4vLyBcdHtcclxuLy8gXHRcdGxhYmVsOiBcInBhcnQxXCIsXHJcbi8vIFx0XHR2YWx1ZTogODAwMDBcclxuLy8gXHR9XHJcbi8vIF07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1waWUtY2hhcnQnLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6e3sgY2hhcnRIZWlnaHQoKSB9fXB4O1wiIGlkPVwie3sgY2hhcnRJZCgpIH19XCI+PC9kaXY+YCxcclxuXHRpbXBvcnRzOiBbTmdDbGFzc10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFBpZUNoYXJ0Q29tcG9uZW50IHtcclxuXHRwcml2YXRlIHJvb3QhOiBhbTUuUm9vdDtcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsIHByaXZhdGUgem9uZTogTmdab25lKSB7fVxyXG5cclxuXHRkYXRhID0gaW5wdXQucmVxdWlyZWQ8ZGF0YUl0ZW1zW10+KCk7XHJcblx0Y2hhcnRJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTsgLy8gbXVzdCBiZSBnaXZlbiB1bmlxdWUgbmFtZXMgZm9yIGFsbCBjaGFydHMuIEl0cyBiZWNhdXNlIGFuZ3VsYXIgYW5kIGFtNSByZW5kZXJpbmcgbWV0aG9kcyBuZWVkcyB1bmlxdWUgaWQgdG8gZHJhdyBkaWZmZXJlbnQgY2FudmFzXHJcblx0YXBwTmFtZSA9IGlucHV0PGFwcE5hbWVzPigneWVhcCcpO1xyXG5cdGNoYXJ0Q29sb3JTZXQ6IHN0cmluZ1tdID0gW107XHJcblx0Y2hhcnRIZWlnaHQgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcblxyXG5cdGJyb3dzZXJPbmx5KGY6ICgpID0+IHZvaWQpIHtcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdFx0ZigpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdC8vIENoYXJ0IGNvZGUgZ29lcyBpbiBoZXJlXHJcblx0XHR0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuXHRcdFx0c3dpdGNoICh0aGlzLmFwcE5hbWUoKSkge1xyXG5cdFx0XHRcdGNhc2UgJ3llYXAnOlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0WWVhcEFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSAndGhvcic6XHJcblx0XHRcdFx0XHR0aGlzLmNoYXJ0Q29sb3JTZXQgPSBDaGFydFRoZW1lcy5nZXRUaG9yQXBwQ29sb3JzKCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlICdsZW5hJzpcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnRDb2xvclNldCA9IENoYXJ0VGhlbWVzLmdldExlbmFBcHBDb2xvcnMoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgJ2JpbGxpbmcnOlxyXG5cdFx0XHRcdFx0dGhpcy5jaGFydENvbG9yU2V0ID0gQ2hhcnRUaGVtZXMuZ2V0VGhvckFwcENvbG9ycygpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnRDb2xvclNldCA9IENoYXJ0VGhlbWVzLmdldFllYXBBcHBDb2xvcnMoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IHJvb3QgPSBhbTUuUm9vdC5uZXcoJ3BpZUNoYXJ0Jyk7XHJcblx0XHRcdHJvb3QuX2xvZ28/LmRpc3Bvc2UoKTtcclxuXHRcdFx0cm9vdC5zZXRUaGVtZXMoW2FtNXRoZW1lc19BbmltYXRlZC5uZXcocm9vdCldKTtcclxuXHJcblx0XHRcdGNvbnN0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChhbTVwZXJjZW50LlBpZUNoYXJ0Lm5ldyhyb290LCB7fSkpO1xyXG5cclxuXHRcdFx0Y29uc3Qgc2VyaWVzID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcblx0XHRcdFx0YW01cGVyY2VudC5QaWVTZXJpZXMubmV3KHJvb3QsIHtcclxuXHRcdFx0XHRcdG5hbWU6ICdTZXJpZXMnLFxyXG5cdFx0XHRcdFx0Y2F0ZWdvcnlGaWVsZDogJ2xhYmVsJyxcclxuXHRcdFx0XHRcdHZhbHVlRmllbGQ6ICd2YWx1ZScsXHJcblx0XHRcdFx0XHRmaWxsRmllbGQ6ICdjb2xvcidcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0c2VyaWVzLnNsaWNlcy50ZW1wbGF0ZS5hZGFwdGVycy5hZGQoJ2ZpbGwnLCAoZmlsbCwgdGFyZ2V0KSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZGF0YUNvbnRleHQ6IGFueSA9IHRhcmdldC5kYXRhSXRlbT8uZGF0YUNvbnRleHQ7XHJcblx0XHRcdFx0aWYgKGRhdGFDb250ZXh0KSB7XHJcblx0XHRcdFx0XHRjb25zdCBpbmRleCA9IHRoaXMuZGF0YSgpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gZGF0YUNvbnRleHQubGFiZWwpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGFtNS5jb2xvcih0aGlzLmNoYXJ0Q29sb3JTZXRbaW5kZXggJSB0aGlzLmNoYXJ0Q29sb3JTZXQubGVuZ3RoXSk7IC8vIFPEsXJhbMSxIHJlbmsgc2XDp2ltaVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmlsbDtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRzZXJpZXMuc2xpY2VzLnRlbXBsYXRlLnNldEFsbCh7XHJcblx0XHRcdFx0c3Ryb2tlOiBhbTUuY29sb3IoMHhmZmZmZmYpLFxyXG5cdFx0XHRcdHN0cm9rZVdpZHRoOiAyXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0c2VyaWVzLmRhdGEuc2V0QWxsKHRoaXMuZGF0YSgpKTtcclxuXHJcblx0XHRcdGNvbnN0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goXHJcblx0XHRcdFx0YW01LkxlZ2VuZC5uZXcocm9vdCwge1xyXG5cdFx0XHRcdFx0Y2VudGVyWDogYW01LnBlcmNlbnQoNTApLFxyXG5cdFx0XHRcdFx0eDogYW01LnBlcmNlbnQoNTApLFxyXG5cdFx0XHRcdFx0bGF5b3V0OiByb290Lmhvcml6b250YWxMYXlvdXRcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0bGVnZW5kLmRhdGEuc2V0QWxsKHNlcmllcy5kYXRhSXRlbXMpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIENsZWFuIHVwIGNoYXJ0IHdoZW4gdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkXHJcblx0XHR0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMucm9vdCkge1xyXG5cdFx0XHRcdHRoaXMucm9vdC5kaXNwb3NlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export class ChartThemes {
|
|
2
|
+
static getThorAppColors() {
|
|
3
|
+
return [
|
|
4
|
+
'#e7625f',
|
|
5
|
+
'#c85250',
|
|
6
|
+
'#f7bec0',
|
|
7
|
+
'#e9eae0',
|
|
8
|
+
'#aa1945',
|
|
9
|
+
'#f1ced4',
|
|
10
|
+
'#391306',
|
|
11
|
+
'#821d30',
|
|
12
|
+
'#fb4570',
|
|
13
|
+
'#fb4570',
|
|
14
|
+
'#fb4570',
|
|
15
|
+
'#5f093d',
|
|
16
|
+
'#b21368',
|
|
17
|
+
'#d67ba8'
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
static getYeapAppColors() {
|
|
21
|
+
return [
|
|
22
|
+
'#525252',
|
|
23
|
+
'#9A9A9A',
|
|
24
|
+
'#767676',
|
|
25
|
+
'#828282',
|
|
26
|
+
'#BEBEBE',
|
|
27
|
+
'#8E8E8E',
|
|
28
|
+
'#6A6A6A',
|
|
29
|
+
'#A6A6A6',
|
|
30
|
+
'#5E5E5E',
|
|
31
|
+
'#B2B2B2',
|
|
32
|
+
'#CACACA'
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
static getLenaAppColors() {
|
|
36
|
+
return [
|
|
37
|
+
'#abea7c',
|
|
38
|
+
'#fede00',
|
|
39
|
+
'#c8df52',
|
|
40
|
+
'#0a7029',
|
|
41
|
+
'#dbe8d8',
|
|
42
|
+
'#65463e',
|
|
43
|
+
'#aad6a0',
|
|
44
|
+
'#013a20',
|
|
45
|
+
'#bacc81',
|
|
46
|
+
'#cdd193',
|
|
47
|
+
'#fad02c',
|
|
48
|
+
'#282120',
|
|
49
|
+
'#333652',
|
|
50
|
+
'#b2d7da'
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoYXJ0cy9zcmMvdGhlbWUvdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdkIsTUFBTSxDQUFDLGdCQUFnQjtRQUN0QixPQUFPO1lBQ04sU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7U0FDVCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0I7UUFDdEIsT0FBTztZQUNOLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1QsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCO1FBQ3RCLE9BQU87WUFDTixTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztTQUNULENBQUM7SUFDSCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ2hhcnRUaGVtZXMge1xyXG5cdHN0YXRpYyBnZXRUaG9yQXBwQ29sb3JzKCkge1xyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0JyNlNzYyNWYnLFxyXG5cdFx0XHQnI2M4NTI1MCcsXHJcblx0XHRcdCcjZjdiZWMwJyxcclxuXHRcdFx0JyNlOWVhZTAnLFxyXG5cdFx0XHQnI2FhMTk0NScsXHJcblx0XHRcdCcjZjFjZWQ0JyxcclxuXHRcdFx0JyMzOTEzMDYnLFxyXG5cdFx0XHQnIzgyMWQzMCcsXHJcblx0XHRcdCcjZmI0NTcwJyxcclxuXHRcdFx0JyNmYjQ1NzAnLFxyXG5cdFx0XHQnI2ZiNDU3MCcsXHJcblx0XHRcdCcjNWYwOTNkJyxcclxuXHRcdFx0JyNiMjEzNjgnLFxyXG5cdFx0XHQnI2Q2N2JhOCdcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0WWVhcEFwcENvbG9ycygpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdCcjNTI1MjUyJyxcclxuXHRcdFx0JyM5QTlBOUEnLFxyXG5cdFx0XHQnIzc2NzY3NicsXHJcblx0XHRcdCcjODI4MjgyJyxcclxuXHRcdFx0JyNCRUJFQkUnLFxyXG5cdFx0XHQnIzhFOEU4RScsXHJcblx0XHRcdCcjNkE2QTZBJyxcclxuXHRcdFx0JyNBNkE2QTYnLFxyXG5cdFx0XHQnIzVFNUU1RScsXHJcblx0XHRcdCcjQjJCMkIyJyxcclxuXHRcdFx0JyNDQUNBQ0EnXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGdldExlbmFBcHBDb2xvcnMoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHQnI2FiZWE3YycsXHJcblx0XHRcdCcjZmVkZTAwJyxcclxuXHRcdFx0JyNjOGRmNTInLFxyXG5cdFx0XHQnIzBhNzAyOScsXHJcblx0XHRcdCcjZGJlOGQ4JyxcclxuXHRcdFx0JyM2NTQ2M2UnLFxyXG5cdFx0XHQnI2FhZDZhMCcsXHJcblx0XHRcdCcjMDEzYTIwJyxcclxuXHRcdFx0JyNiYWNjODEnLFxyXG5cdFx0XHQnI2NkZDE5MycsXHJcblx0XHRcdCcjZmFkMDJjJyxcclxuXHRcdFx0JyMyODIxMjAnLFxyXG5cdFx0XHQnIzMzMzY1MicsXHJcblx0XHRcdCcjYjJkN2RhJ1xyXG5cdFx0XTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpbC11aS1kZXRhaWxlZC1vdmVybGF5LXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9kZXRhaWxlZC1vdmVybGF5LXBhbmVsL2FyaWwtdWktZGV0YWlsZWQtb3ZlcmxheS1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/detailed-overlay-panel.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2RldGFpbGVkLW92ZXJsYXktcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2RldGFpbGVkLW92ZXJsYXktcGFuZWwuY29tcG9uZW50JztcclxuIl19
|