@progress/kendo-angular-charts
Version:
Kendo UI Charts for Angular - A comprehensive package for creating beautiful and interactive data visualization. Every chart type, stock charts, and sparklines are included.
177 lines (174 loc) • 8.82 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2024 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Input, Component, NgZone, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, Renderer2, Output, EventEmitter } from '@angular/core';
import { ConfigurationService } from './common/configuration.service';
import { TooltipTemplateService } from './common/tooltip-template.service';
import { InstanceEventService } from './events/instance-event.service';
import { ChartComponent } from './chart.component';
import { ThemeService } from './common/theme.service';
import { IntlService } from '@progress/kendo-angular-intl';
import { Sparkline } from '@progress/kendo-charts';
import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
import { validatePackage } from '@progress/kendo-licensing';
import { ResizeSensorComponent, WatermarkOverlayComponent, shouldShowValidationUI } from '@progress/kendo-angular-common';
import { packageMetadata } from './package-metadata';
import { NgIf } from '@angular/common';
import { TooltipPopupComponent } from './chart/tooltip/tooltip-popup.component';
import { CrosshairTooltipsContainerComponent } from './chart/tooltip/crosshair-tooltips-container.component';
import * as i0 from "@angular/core";
import * as i1 from "./common/configuration.service";
import * as i2 from "./common/theme.service";
import * as i3 from "@progress/kendo-angular-intl";
import * as i4 from "@progress/kendo-angular-l10n";
import * as i5 from "./events/instance-event.service";
/**
* The root Chart component.
*
* @example
* ```html
* <kendo-sparkline [data]="[936, 968, 1025, 999]" type="column">
* </kendo-sparkline>
* ```
*/
export class SparklineComponent extends ChartComponent {
configurationService;
themeService;
element;
intl;
localizationService;
ngZone;
instanceEventService;
changeDetector;
renderer;
/**
* The default series type.
*/
type;
/**
* The data for the default Sparkline series.
* Discarded if series are supplied.
*/
data;
/**
* @hidden
*/
drilldown = new EventEmitter();
/**
* @hidden
*/
drilldownLevelChange = new EventEmitter();
/**
* @hidden
*/
noData = false;
/**
* @hidden
*/
get drilldownLevel() {
return this.drilldownState.length;
}
/**
* @hidden
*/
tooltipWrapperClass = 'k-sparkline-tooltip-wrapper';
/**
* @hidden
*/
tooltipContentClasses = {
'k-sparkline-tooltip': true
};
/**
* @hidden
*/
showLicenseWatermark = false;
hostClasses = ['k-sparkline', 'k-widget'];
constructor(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) {
super(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer);
this.configurationService = configurationService;
this.themeService = themeService;
this.element = element;
this.intl = intl;
this.localizationService = localizationService;
this.ngZone = ngZone;
this.instanceEventService = instanceEventService;
this.changeDetector = changeDetector;
this.renderer = renderer;
const isValid = validatePackage(packageMetadata);
this.showLicenseWatermark = shouldShowValidationUI(isValid);
}
createInstance(element, observer) {
this.instance = new Sparkline(element, Sparkline.normalizeOptions(this.options), this.theme, {
intlService: this.intl,
observer: observer,
rtl: this.rtl,
sender: this
});
}
updateOptions() {
this.instance.setOptions(Sparkline.normalizeOptions(this.options));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SparklineComponent, deps: [{ token: i1.ConfigurationService }, { token: i2.ThemeService }, { token: i0.ElementRef }, { token: i3.IntlService }, { token: i4.LocalizationService }, { token: i0.NgZone }, { token: i5.InstanceEventService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SparklineComponent, isStandalone: true, selector: "kendo-sparkline", inputs: { type: "type", data: "data", noData: "noData", drilldownLevel: "drilldownLevel" }, outputs: { drilldown: "drilldown", drilldownLevelChange: "drilldownLevelChange" }, providers: [
ConfigurationService,
TooltipTemplateService,
InstanceEventService,
LocalizationService,
{
provide: L10N_PREFIX,
useValue: 'kendo.chart'
}
], exportAs: ["kendoSparkline"], usesInheritance: true, ngImport: i0, template: `
<span #surface class="k-chart-surface"></span>
<kendo-chart-crosshair-tooltips-container [popupSettings]="popupSettings">
</kendo-chart-crosshair-tooltips-container>
<kendo-chart-tooltip-popup [animate]="false" [wrapperClass]="tooltipWrapperClass"
[classNames]="tooltipContentClasses" (leave)="tooltipMouseleave($event)" [popupSettings]="popupSettings">
</kendo-chart-tooltip-popup>
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
`, isInline: true, dependencies: [{ kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SparklineComponent, decorators: [{
type: Component,
args: [{
changeDetection: ChangeDetectionStrategy.OnPush,
exportAs: 'kendoSparkline',
providers: [
ConfigurationService,
TooltipTemplateService,
InstanceEventService,
LocalizationService,
{
provide: L10N_PREFIX,
useValue: 'kendo.chart'
}
],
selector: 'kendo-sparkline',
template: `
<span #surface class="k-chart-surface"></span>
<kendo-chart-crosshair-tooltips-container [popupSettings]="popupSettings">
</kendo-chart-crosshair-tooltips-container>
<kendo-chart-tooltip-popup [animate]="false" [wrapperClass]="tooltipWrapperClass"
[classNames]="tooltipContentClasses" (leave)="tooltipMouseleave($event)" [popupSettings]="popupSettings">
</kendo-chart-tooltip-popup>
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
`,
standalone: true,
imports: [CrosshairTooltipsContainerComponent, TooltipPopupComponent, ResizeSensorComponent, NgIf, WatermarkOverlayComponent]
}]
}], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.ThemeService }, { type: i0.ElementRef }, { type: i3.IntlService }, { type: i4.LocalizationService }, { type: i0.NgZone }, { type: i5.InstanceEventService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { type: [{
type: Input
}], data: [{
type: Input
}], drilldown: [{
type: Output
}], drilldownLevelChange: [{
type: Output
}], noData: [{
type: Input
}], drilldownLevel: [{
type: Input
}] } });