@progress/kendo-angular-charts 16.4.0-develop.8 → 16.5.0-develop.1

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.
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-charts',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1720532354,
13
- version: '16.4.0-develop.8',
12
+ publishDate: 1720707155,
13
+ version: '16.5.0-develop.1',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Component, ElementRef, Input, NgZone, TemplateRef, ViewChild } from '@angular/core';
5
+ import { Component, ElementRef, Input, NgZone, Renderer2, TemplateRef, ViewChild } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { POPUP_CONTAINER, PopupService } from '@progress/kendo-angular-popup';
8
8
  import { BaseTooltip } from '../../chart/tooltip/base-tooltip';
@@ -12,7 +12,7 @@ import { SankeyLinkTooltipTemplateDirective } from './link-tooltip-template.dire
12
12
  import { SankeyNodeTooltipTemplateContext } from './node-tooltip-template-context';
13
13
  import { SankeyNodeTooltipTemplateDirective } from './node-tooltip-template.directive';
14
14
  import { SankeyTooltipTemplateService } from './tooltip-template.service';
15
- import { arrowRightIcon } from '@progress/kendo-svg-icons';
15
+ import { arrowLeftIcon, arrowRightIcon } from '@progress/kendo-svg-icons';
16
16
  import { IntlService } from '@progress/kendo-angular-intl';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "@progress/kendo-angular-popup";
@@ -29,7 +29,7 @@ const DEFAULT_OFFSET = 12;
29
29
  * @hidden
30
30
  */
31
31
  export class SankeyTooltipPopupComponent extends BaseTooltip {
32
- constructor(element, popupService, templateService, localizationService, intlService, ngZone) {
32
+ constructor(element, popupService, templateService, localizationService, intlService, ngZone, renderer) {
33
33
  super(popupService, localizationService);
34
34
  this.element = element;
35
35
  this.popupService = popupService;
@@ -37,16 +37,28 @@ export class SankeyTooltipPopupComponent extends BaseTooltip {
37
37
  this.localizationService = localizationService;
38
38
  this.intlService = intlService;
39
39
  this.ngZone = ngZone;
40
+ this.renderer = renderer;
40
41
  this.animate = false;
41
42
  this.wrapperClass = 'k-chart-tooltip-wrapper';
42
- this.arrowRightIcon = arrowRightIcon;
43
+ this.arrowIcon = arrowRightIcon;
43
44
  // TODO: Move to themes
44
45
  this.textStyle = { margin: '0 3px' };
45
46
  this.tooltipStyle = { display: 'flex', alignItems: 'center' };
47
+ this.rtl = false;
46
48
  }
47
49
  onInit() {
48
50
  this.popupRef.popupElement.className += ` ${this.wrapperClass}`;
49
51
  }
52
+ ngAfterViewInit() {
53
+ this.setDirection();
54
+ this.subscriptions = this.localizationService.changes.subscribe(this.rtlChange.bind(this));
55
+ }
56
+ ngOnDestroy() {
57
+ super.ngOnDestroy();
58
+ if (this.subscriptions) {
59
+ this.subscriptions.unsubscribe();
60
+ }
61
+ }
50
62
  show(e) {
51
63
  this.isNode = e.targetType === 'node';
52
64
  this.isLink = e.targetType === 'link';
@@ -85,8 +97,20 @@ export class SankeyTooltipPopupComponent extends BaseTooltip {
85
97
  formatUnits(value) {
86
98
  return this.intlService.format(this.tooltipUnitFormat, value ?? 0);
87
99
  }
100
+ rtlChange() {
101
+ this.arrowIcon = this.rtl ? arrowLeftIcon : arrowRightIcon;
102
+ }
103
+ setDirection() {
104
+ this.rtl = this.isRTL;
105
+ if (this.element) {
106
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
107
+ }
108
+ }
109
+ get isRTL() {
110
+ return Boolean(this.localizationService.rtl);
111
+ }
88
112
  }
89
- SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: i2.SankeyTooltipTemplateService }, { token: i3.LocalizationService }, { token: i4.IntlService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
113
+ SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: i2.SankeyTooltipTemplateService }, { token: i3.LocalizationService }, { token: i4.IntlService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
90
114
  SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: { animate: "animate", popupSettings: "popupSettings", wrapperClass: "wrapperClass", tooltipUnitFormat: "tooltipUnitFormat", offset: "offset" }, providers: [
91
115
  PopupService,
92
116
  {
@@ -125,7 +149,8 @@ SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
125
149
  <div [ngStyle]="tooltipStyle">
126
150
  <div squareSymbol [color]="source.color"></div>
127
151
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
128
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
152
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
153
+ <div squareSymbol [color]="target.color"></div>
129
154
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
130
155
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
131
156
  </div>
@@ -174,14 +199,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
174
199
  <div [ngStyle]="tooltipStyle">
175
200
  <div squareSymbol [color]="source.color"></div>
176
201
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
177
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
202
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
203
+ <div squareSymbol [color]="target.color"></div>
178
204
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
179
205
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
180
206
  </div>
181
207
  </ng-template>
182
208
  `,
183
209
  }]
184
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: i2.SankeyTooltipTemplateService }, { type: i3.LocalizationService }, { type: i4.IntlService }, { type: i0.NgZone }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
210
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: i2.SankeyTooltipTemplateService }, { type: i3.LocalizationService }, { type: i4.IntlService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
185
211
  type: ViewChild,
186
212
  args: [SankeyNodeTooltipTemplateDirective, { static: false }]
187
213
  }], defaultLinkTooltipTemplate: [{
@@ -19,15 +19,17 @@ import { Sankey, } from '@progress/kendo-charts';
19
19
  import { hasObservers } from './common/has-observers';
20
20
  import { SankeyTooltipPopupComponent } from './sankey/tooltip/tooltip-popup.component';
21
21
  import { SankeyTooltipTemplateService } from './sankey/tooltip/tooltip-template.service';
22
+ import { IntlService } from '@progress/kendo-angular-intl';
22
23
  import * as i0 from "@angular/core";
23
24
  import * as i1 from "./common/configuration.service";
24
25
  import * as i2 from "./common/theme.service";
25
26
  import * as i3 from "@progress/kendo-angular-l10n";
26
27
  import * as i4 from "./sankey/events";
27
- import * as i5 from "@angular/common";
28
- import * as i6 from "@progress/kendo-angular-common";
29
- import * as i7 from "./sankey/tooltip/tooltip-popup.component";
30
- import * as i8 from "./sankey/localization/localized-messages.directive";
28
+ import * as i5 from "@progress/kendo-angular-intl";
29
+ import * as i6 from "@angular/common";
30
+ import * as i7 from "@progress/kendo-angular-common";
31
+ import * as i8 from "./sankey/tooltip/tooltip-popup.component";
32
+ import * as i9 from "./sankey/localization/localized-messages.directive";
31
33
  /**
32
34
  * The Sankey diagram component.
33
35
  *
@@ -60,7 +62,7 @@ import * as i8 from "./sankey/localization/localized-messages.directive";
60
62
  * ```
61
63
  */
62
64
  export class SankeyComponent {
63
- constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer) {
65
+ constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer, intlService) {
64
66
  this.element = element;
65
67
  this.configurationService = configurationService;
66
68
  this.themeService = themeService;
@@ -69,6 +71,14 @@ export class SankeyComponent {
69
71
  this.ngZone = ngZone;
70
72
  this.changeDetector = changeDetector;
71
73
  this.renderer = renderer;
74
+ this.intlService = intlService;
75
+ /**
76
+ * If set to `false`, the Sankey keyboard navigation will be disabled.
77
+ * By default, navigation is enabled.
78
+ *
79
+ * @default true
80
+ */
81
+ this.navigable = true;
72
82
  /**
73
83
  * Fires when the mouse pointer enters a node. Similar to the `mouseenter` event.
74
84
  */
@@ -103,6 +113,11 @@ export class SankeyComponent {
103
113
  this.themeService.loadTheme();
104
114
  this.refreshWait();
105
115
  }
116
+ ngAfterViewInit() {
117
+ this.setDirection();
118
+ this.subscriptions = this.intlService.changes.subscribe(this.intlChange.bind(this));
119
+ this.subscriptions.add(this.localizationService.changes.subscribe(this.rtlChange.bind(this)));
120
+ }
106
121
  ngOnChanges(changes) {
107
122
  const store = this.configurationService.store;
108
123
  copyChanges(changes, store);
@@ -145,7 +160,7 @@ export class SankeyComponent {
145
160
  return this.localizationService.get(key);
146
161
  }
147
162
  createInstance(element) {
148
- this.instance = new Sankey(element, this.options, this.theme);
163
+ this.instance = new Sankey(element, this.instanceOptions, this.theme);
149
164
  ['nodeEnter', 'nodeLeave', 'nodeClick', 'linkEnter', 'linkLeave', 'linkClick'].forEach((eventName) => this.instance.bind(eventName, (e) => this.trigger(eventName, e)));
150
165
  this.instance.bind('tooltipShow', (e) => this.onShowTooltip(e));
151
166
  this.instance.bind('tooltipHide', () => this.onHideTooltip());
@@ -235,11 +250,14 @@ export class SankeyComponent {
235
250
  this.updateOptions();
236
251
  }
237
252
  updateOptions() {
238
- this.instance.setOptions(this.options);
253
+ this.instance.setOptions(this.instanceOptions);
239
254
  }
240
255
  get canRender() {
241
256
  return isDocumentAvailable() && Boolean(this.instanceElement);
242
257
  }
258
+ get instanceOptions() {
259
+ return { ...this.options, rtl: this.rtl, disableKeyboardNavigation: !this.navigable };
260
+ }
243
261
  activeEmitter(name) {
244
262
  const emitter = this[name];
245
263
  if (emitter && emitter.emit && hasObservers(emitter)) {
@@ -283,9 +301,28 @@ export class SankeyComponent {
283
301
  this.changeDetector.detectChanges();
284
302
  }
285
303
  }
304
+ intlChange() {
305
+ if (this.instance) {
306
+ this.refresh();
307
+ }
308
+ }
309
+ rtlChange() {
310
+ if (this.instance && this.rtl !== this.isRTL) {
311
+ this.refresh();
312
+ }
313
+ }
314
+ setDirection() {
315
+ this.rtl = this.isRTL;
316
+ if (this.element) {
317
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
318
+ }
319
+ }
320
+ get isRTL() {
321
+ return Boolean(this.localizationService.rtl);
322
+ }
286
323
  }
287
- SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurationService }, { token: i2.ThemeService }, { token: i3.LocalizationService }, { token: i4.InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
288
- SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
324
+ SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurationService }, { token: i2.ThemeService }, { token: i3.LocalizationService }, { token: i4.InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i5.IntlService }], target: i0.ɵɵFactoryTarget.Component });
325
+ SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", navigable: "navigable", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
289
326
  ConfigurationService,
290
327
  LocalizationService,
291
328
  InstanceEventService,
@@ -307,7 +344,7 @@ SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
307
344
  >
308
345
  </kendo-sankey-tooltip-popup>
309
346
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
310
- `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i7.SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: ["animate", "popupSettings", "wrapperClass", "tooltipUnitFormat", "offset"] }, { kind: "directive", type: i8.LocalizedMessagesDirective, selector: "[kendoSankeyLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
347
+ `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i8.SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: ["animate", "popupSettings", "wrapperClass", "tooltipUnitFormat", "offset"] }, { kind: "directive", type: i9.LocalizedMessagesDirective, selector: "[kendoSankeyLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
311
348
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, decorators: [{
312
349
  type: Component,
313
350
  args: [{
@@ -339,7 +376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
339
376
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
340
377
  `,
341
378
  }]
342
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurationService }, { type: i2.ThemeService }, { type: i3.LocalizationService }, { type: i4.InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { data: [{
379
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurationService }, { type: i2.ThemeService }, { type: i3.LocalizationService }, { type: i4.InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i5.IntlService }]; }, propDecorators: { data: [{
343
380
  type: Input
344
381
  }], links: [{
345
382
  type: Input
@@ -355,6 +392,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
355
392
  type: Input
356
393
  }], disableAutoLayout: [{
357
394
  type: Input
395
+ }], navigable: [{
396
+ type: Input
358
397
  }], popupSettings: [{
359
398
  type: Input
360
399
  }], nodeEnter: [{
@@ -18,7 +18,7 @@ import { PopupService, POPUP_CONTAINER, PopupModule } from '@progress/kendo-angu
18
18
  import * as i4$1 from '@angular/common';
19
19
  import { CommonModule } from '@angular/common';
20
20
  import * as i3 from '@progress/kendo-angular-intl';
21
- import { homeIcon, arrowRightIcon } from '@progress/kendo-svg-icons';
21
+ import { homeIcon, arrowRightIcon, arrowLeftIcon } from '@progress/kendo-svg-icons';
22
22
  import * as i1$1 from '@progress/kendo-angular-navigation';
23
23
  import { BreadCrumbModule } from '@progress/kendo-angular-navigation';
24
24
  import * as i6 from '@progress/kendo-angular-icons';
@@ -1687,8 +1687,8 @@ const packageMetadata = {
1687
1687
  name: '@progress/kendo-angular-charts',
1688
1688
  productName: 'Kendo UI for Angular',
1689
1689
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
1690
- publishDate: 1720532354,
1691
- version: '16.4.0-develop.8',
1690
+ publishDate: 1720707155,
1691
+ version: '16.5.0-develop.1',
1692
1692
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1693
1693
  };
1694
1694
 
@@ -7966,7 +7966,7 @@ const DEFAULT_OFFSET = 12;
7966
7966
  * @hidden
7967
7967
  */
7968
7968
  class SankeyTooltipPopupComponent extends BaseTooltip {
7969
- constructor(element, popupService, templateService, localizationService, intlService, ngZone) {
7969
+ constructor(element, popupService, templateService, localizationService, intlService, ngZone, renderer) {
7970
7970
  super(popupService, localizationService);
7971
7971
  this.element = element;
7972
7972
  this.popupService = popupService;
@@ -7974,16 +7974,28 @@ class SankeyTooltipPopupComponent extends BaseTooltip {
7974
7974
  this.localizationService = localizationService;
7975
7975
  this.intlService = intlService;
7976
7976
  this.ngZone = ngZone;
7977
+ this.renderer = renderer;
7977
7978
  this.animate = false;
7978
7979
  this.wrapperClass = 'k-chart-tooltip-wrapper';
7979
- this.arrowRightIcon = arrowRightIcon;
7980
+ this.arrowIcon = arrowRightIcon;
7980
7981
  // TODO: Move to themes
7981
7982
  this.textStyle = { margin: '0 3px' };
7982
7983
  this.tooltipStyle = { display: 'flex', alignItems: 'center' };
7984
+ this.rtl = false;
7983
7985
  }
7984
7986
  onInit() {
7985
7987
  this.popupRef.popupElement.className += ` ${this.wrapperClass}`;
7986
7988
  }
7989
+ ngAfterViewInit() {
7990
+ this.setDirection();
7991
+ this.subscriptions = this.localizationService.changes.subscribe(this.rtlChange.bind(this));
7992
+ }
7993
+ ngOnDestroy() {
7994
+ super.ngOnDestroy();
7995
+ if (this.subscriptions) {
7996
+ this.subscriptions.unsubscribe();
7997
+ }
7998
+ }
7987
7999
  show(e) {
7988
8000
  this.isNode = e.targetType === 'node';
7989
8001
  this.isLink = e.targetType === 'link';
@@ -8022,8 +8034,20 @@ class SankeyTooltipPopupComponent extends BaseTooltip {
8022
8034
  formatUnits(value) {
8023
8035
  return this.intlService.format(this.tooltipUnitFormat, value !== null && value !== void 0 ? value : 0);
8024
8036
  }
8037
+ rtlChange() {
8038
+ this.arrowIcon = this.rtl ? arrowLeftIcon : arrowRightIcon;
8039
+ }
8040
+ setDirection() {
8041
+ this.rtl = this.isRTL;
8042
+ if (this.element) {
8043
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
8044
+ }
8045
+ }
8046
+ get isRTL() {
8047
+ return Boolean(this.localizationService.rtl);
8048
+ }
8025
8049
  }
8026
- SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SankeyTooltipTemplateService }, { token: i4.LocalizationService }, { token: i3.IntlService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
8050
+ SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SankeyTooltipTemplateService }, { token: i4.LocalizationService }, { token: i3.IntlService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
8027
8051
  SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: { animate: "animate", popupSettings: "popupSettings", wrapperClass: "wrapperClass", tooltipUnitFormat: "tooltipUnitFormat", offset: "offset" }, providers: [
8028
8052
  PopupService,
8029
8053
  {
@@ -8062,7 +8086,8 @@ SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
8062
8086
  <div [ngStyle]="tooltipStyle">
8063
8087
  <div squareSymbol [color]="source.color"></div>
8064
8088
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
8065
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
8089
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
8090
+ <div squareSymbol [color]="target.color"></div>
8066
8091
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
8067
8092
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
8068
8093
  </div>
@@ -8111,14 +8136,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8111
8136
  <div [ngStyle]="tooltipStyle">
8112
8137
  <div squareSymbol [color]="source.color"></div>
8113
8138
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
8114
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
8139
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
8140
+ <div squareSymbol [color]="target.color"></div>
8115
8141
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
8116
8142
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
8117
8143
  </div>
8118
8144
  </ng-template>
8119
8145
  `,
8120
8146
  }]
8121
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SankeyTooltipTemplateService }, { type: i4.LocalizationService }, { type: i3.IntlService }, { type: i0.NgZone }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
8147
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SankeyTooltipTemplateService }, { type: i4.LocalizationService }, { type: i3.IntlService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
8122
8148
  type: ViewChild,
8123
8149
  args: [SankeyNodeTooltipTemplateDirective, { static: false }]
8124
8150
  }], defaultLinkTooltipTemplate: [{
@@ -8216,7 +8242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8216
8242
  * ```
8217
8243
  */
8218
8244
  class SankeyComponent {
8219
- constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer) {
8245
+ constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer, intlService) {
8220
8246
  this.element = element;
8221
8247
  this.configurationService = configurationService;
8222
8248
  this.themeService = themeService;
@@ -8225,6 +8251,14 @@ class SankeyComponent {
8225
8251
  this.ngZone = ngZone;
8226
8252
  this.changeDetector = changeDetector;
8227
8253
  this.renderer = renderer;
8254
+ this.intlService = intlService;
8255
+ /**
8256
+ * If set to `false`, the Sankey keyboard navigation will be disabled.
8257
+ * By default, navigation is enabled.
8258
+ *
8259
+ * @default true
8260
+ */
8261
+ this.navigable = true;
8228
8262
  /**
8229
8263
  * Fires when the mouse pointer enters a node. Similar to the `mouseenter` event.
8230
8264
  */
@@ -8259,6 +8293,11 @@ class SankeyComponent {
8259
8293
  this.themeService.loadTheme();
8260
8294
  this.refreshWait();
8261
8295
  }
8296
+ ngAfterViewInit() {
8297
+ this.setDirection();
8298
+ this.subscriptions = this.intlService.changes.subscribe(this.intlChange.bind(this));
8299
+ this.subscriptions.add(this.localizationService.changes.subscribe(this.rtlChange.bind(this)));
8300
+ }
8262
8301
  ngOnChanges(changes) {
8263
8302
  const store = this.configurationService.store;
8264
8303
  copyChanges(changes, store);
@@ -8301,7 +8340,7 @@ class SankeyComponent {
8301
8340
  return this.localizationService.get(key);
8302
8341
  }
8303
8342
  createInstance(element) {
8304
- this.instance = new Sankey(element, this.options, this.theme);
8343
+ this.instance = new Sankey(element, this.instanceOptions, this.theme);
8305
8344
  ['nodeEnter', 'nodeLeave', 'nodeClick', 'linkEnter', 'linkLeave', 'linkClick'].forEach((eventName) => this.instance.bind(eventName, (e) => this.trigger(eventName, e)));
8306
8345
  this.instance.bind('tooltipShow', (e) => this.onShowTooltip(e));
8307
8346
  this.instance.bind('tooltipHide', () => this.onHideTooltip());
@@ -8391,11 +8430,14 @@ class SankeyComponent {
8391
8430
  this.updateOptions();
8392
8431
  }
8393
8432
  updateOptions() {
8394
- this.instance.setOptions(this.options);
8433
+ this.instance.setOptions(this.instanceOptions);
8395
8434
  }
8396
8435
  get canRender() {
8397
8436
  return isDocumentAvailable() && Boolean(this.instanceElement);
8398
8437
  }
8438
+ get instanceOptions() {
8439
+ return Object.assign(Object.assign({}, this.options), { rtl: this.rtl, disableKeyboardNavigation: !this.navigable });
8440
+ }
8399
8441
  activeEmitter(name) {
8400
8442
  const emitter = this[name];
8401
8443
  if (emitter && emitter.emit && hasObservers(emitter)) {
@@ -8436,9 +8478,28 @@ class SankeyComponent {
8436
8478
  this.changeDetector.detectChanges();
8437
8479
  }
8438
8480
  }
8481
+ intlChange() {
8482
+ if (this.instance) {
8483
+ this.refresh();
8484
+ }
8485
+ }
8486
+ rtlChange() {
8487
+ if (this.instance && this.rtl !== this.isRTL) {
8488
+ this.refresh();
8489
+ }
8490
+ }
8491
+ setDirection() {
8492
+ this.rtl = this.isRTL;
8493
+ if (this.element) {
8494
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
8495
+ }
8496
+ }
8497
+ get isRTL() {
8498
+ return Boolean(this.localizationService.rtl);
8499
+ }
8439
8500
  }
8440
- SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: ConfigurationService }, { token: ThemeService }, { token: i4.LocalizationService }, { token: InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
8441
- SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
8501
+ SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: ConfigurationService }, { token: ThemeService }, { token: i4.LocalizationService }, { token: InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i3.IntlService }], target: i0.ɵɵFactoryTarget.Component });
8502
+ SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", navigable: "navigable", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
8442
8503
  ConfigurationService,
8443
8504
  LocalizationService,
8444
8505
  InstanceEventService,
@@ -8492,7 +8553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8492
8553
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
8493
8554
  `,
8494
8555
  }]
8495
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ConfigurationService }, { type: ThemeService }, { type: i4.LocalizationService }, { type: InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { data: [{
8556
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ConfigurationService }, { type: ThemeService }, { type: i4.LocalizationService }, { type: InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i3.IntlService }]; }, propDecorators: { data: [{
8496
8557
  type: Input
8497
8558
  }], links: [{
8498
8559
  type: Input
@@ -8508,6 +8569,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8508
8569
  type: Input
8509
8570
  }], disableAutoLayout: [{
8510
8571
  type: Input
8572
+ }], navigable: [{
8573
+ type: Input
8511
8574
  }], popupSettings: [{
8512
8575
  type: Input
8513
8576
  }], nodeEnter: [{
@@ -20,7 +20,7 @@ import * as i4$1 from '@angular/common';
20
20
  import { CommonModule } from '@angular/common';
21
21
  import * as i1$1 from '@progress/kendo-angular-navigation';
22
22
  import { BreadCrumbModule } from '@progress/kendo-angular-navigation';
23
- import { homeIcon, arrowRightIcon } from '@progress/kendo-svg-icons';
23
+ import { homeIcon, arrowRightIcon, arrowLeftIcon } from '@progress/kendo-svg-icons';
24
24
  import * as i6 from '@progress/kendo-angular-icons';
25
25
  import { IconsModule } from '@progress/kendo-angular-icons';
26
26
  import { getter } from '@progress/kendo-common';
@@ -2073,8 +2073,8 @@ const packageMetadata = {
2073
2073
  name: '@progress/kendo-angular-charts',
2074
2074
  productName: 'Kendo UI for Angular',
2075
2075
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2076
- publishDate: 1720532354,
2077
- version: '16.4.0-develop.8',
2076
+ publishDate: 1720707155,
2077
+ version: '16.5.0-develop.1',
2078
2078
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2079
2079
  };
2080
2080
 
@@ -7946,7 +7946,7 @@ const DEFAULT_OFFSET = 12;
7946
7946
  * @hidden
7947
7947
  */
7948
7948
  class SankeyTooltipPopupComponent extends BaseTooltip {
7949
- constructor(element, popupService, templateService, localizationService, intlService, ngZone) {
7949
+ constructor(element, popupService, templateService, localizationService, intlService, ngZone, renderer) {
7950
7950
  super(popupService, localizationService);
7951
7951
  this.element = element;
7952
7952
  this.popupService = popupService;
@@ -7954,16 +7954,28 @@ class SankeyTooltipPopupComponent extends BaseTooltip {
7954
7954
  this.localizationService = localizationService;
7955
7955
  this.intlService = intlService;
7956
7956
  this.ngZone = ngZone;
7957
+ this.renderer = renderer;
7957
7958
  this.animate = false;
7958
7959
  this.wrapperClass = 'k-chart-tooltip-wrapper';
7959
- this.arrowRightIcon = arrowRightIcon;
7960
+ this.arrowIcon = arrowRightIcon;
7960
7961
  // TODO: Move to themes
7961
7962
  this.textStyle = { margin: '0 3px' };
7962
7963
  this.tooltipStyle = { display: 'flex', alignItems: 'center' };
7964
+ this.rtl = false;
7963
7965
  }
7964
7966
  onInit() {
7965
7967
  this.popupRef.popupElement.className += ` ${this.wrapperClass}`;
7966
7968
  }
7969
+ ngAfterViewInit() {
7970
+ this.setDirection();
7971
+ this.subscriptions = this.localizationService.changes.subscribe(this.rtlChange.bind(this));
7972
+ }
7973
+ ngOnDestroy() {
7974
+ super.ngOnDestroy();
7975
+ if (this.subscriptions) {
7976
+ this.subscriptions.unsubscribe();
7977
+ }
7978
+ }
7967
7979
  show(e) {
7968
7980
  this.isNode = e.targetType === 'node';
7969
7981
  this.isLink = e.targetType === 'link';
@@ -8002,8 +8014,20 @@ class SankeyTooltipPopupComponent extends BaseTooltip {
8002
8014
  formatUnits(value) {
8003
8015
  return this.intlService.format(this.tooltipUnitFormat, value ?? 0);
8004
8016
  }
8017
+ rtlChange() {
8018
+ this.arrowIcon = this.rtl ? arrowLeftIcon : arrowRightIcon;
8019
+ }
8020
+ setDirection() {
8021
+ this.rtl = this.isRTL;
8022
+ if (this.element) {
8023
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
8024
+ }
8025
+ }
8026
+ get isRTL() {
8027
+ return Boolean(this.localizationService.rtl);
8028
+ }
8005
8029
  }
8006
- SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SankeyTooltipTemplateService }, { token: i4.LocalizationService }, { token: i3.IntlService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
8030
+ SankeyTooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyTooltipPopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SankeyTooltipTemplateService }, { token: i4.LocalizationService }, { token: i3.IntlService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
8007
8031
  SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: { animate: "animate", popupSettings: "popupSettings", wrapperClass: "wrapperClass", tooltipUnitFormat: "tooltipUnitFormat", offset: "offset" }, providers: [
8008
8032
  PopupService,
8009
8033
  {
@@ -8042,7 +8066,8 @@ SankeyTooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
8042
8066
  <div [ngStyle]="tooltipStyle">
8043
8067
  <div squareSymbol [color]="source.color"></div>
8044
8068
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
8045
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
8069
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
8070
+ <div squareSymbol [color]="target.color"></div>
8046
8071
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
8047
8072
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
8048
8073
  </div>
@@ -8091,14 +8116,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8091
8116
  <div [ngStyle]="tooltipStyle">
8092
8117
  <div squareSymbol [color]="source.color"></div>
8093
8118
  <span [ngStyle]="textStyle">{{ source.label?.text }}</span>
8094
- <kendo-icon-wrapper name="arrow-right" [svgIcon]="arrowRightIcon"></kendo-icon-wrapper>
8119
+ <kendo-icon-wrapper [name]="arrowIcon.name" [svgIcon]="arrowIcon"></kendo-icon-wrapper>
8120
+ <div squareSymbol [color]="target.color"></div>
8095
8121
  <span [ngStyle]="textStyle">{{ target.label?.text }}</span>
8096
8122
  <span [ngStyle]="textStyle">{{ formatUnits(value) }}</span>
8097
8123
  </div>
8098
8124
  </ng-template>
8099
8125
  `,
8100
8126
  }]
8101
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SankeyTooltipTemplateService }, { type: i4.LocalizationService }, { type: i3.IntlService }, { type: i0.NgZone }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
8127
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SankeyTooltipTemplateService }, { type: i4.LocalizationService }, { type: i3.IntlService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { defaultNodeTooltipTemplate: [{
8102
8128
  type: ViewChild,
8103
8129
  args: [SankeyNodeTooltipTemplateDirective, { static: false }]
8104
8130
  }], defaultLinkTooltipTemplate: [{
@@ -8196,7 +8222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8196
8222
  * ```
8197
8223
  */
8198
8224
  class SankeyComponent {
8199
- constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer) {
8225
+ constructor(element, configurationService, themeService, localizationService, instanceEventService, ngZone, changeDetector, renderer, intlService) {
8200
8226
  this.element = element;
8201
8227
  this.configurationService = configurationService;
8202
8228
  this.themeService = themeService;
@@ -8205,6 +8231,14 @@ class SankeyComponent {
8205
8231
  this.ngZone = ngZone;
8206
8232
  this.changeDetector = changeDetector;
8207
8233
  this.renderer = renderer;
8234
+ this.intlService = intlService;
8235
+ /**
8236
+ * If set to `false`, the Sankey keyboard navigation will be disabled.
8237
+ * By default, navigation is enabled.
8238
+ *
8239
+ * @default true
8240
+ */
8241
+ this.navigable = true;
8208
8242
  /**
8209
8243
  * Fires when the mouse pointer enters a node. Similar to the `mouseenter` event.
8210
8244
  */
@@ -8239,6 +8273,11 @@ class SankeyComponent {
8239
8273
  this.themeService.loadTheme();
8240
8274
  this.refreshWait();
8241
8275
  }
8276
+ ngAfterViewInit() {
8277
+ this.setDirection();
8278
+ this.subscriptions = this.intlService.changes.subscribe(this.intlChange.bind(this));
8279
+ this.subscriptions.add(this.localizationService.changes.subscribe(this.rtlChange.bind(this)));
8280
+ }
8242
8281
  ngOnChanges(changes) {
8243
8282
  const store = this.configurationService.store;
8244
8283
  copyChanges(changes, store);
@@ -8281,7 +8320,7 @@ class SankeyComponent {
8281
8320
  return this.localizationService.get(key);
8282
8321
  }
8283
8322
  createInstance(element) {
8284
- this.instance = new Sankey(element, this.options, this.theme);
8323
+ this.instance = new Sankey(element, this.instanceOptions, this.theme);
8285
8324
  ['nodeEnter', 'nodeLeave', 'nodeClick', 'linkEnter', 'linkLeave', 'linkClick'].forEach((eventName) => this.instance.bind(eventName, (e) => this.trigger(eventName, e)));
8286
8325
  this.instance.bind('tooltipShow', (e) => this.onShowTooltip(e));
8287
8326
  this.instance.bind('tooltipHide', () => this.onHideTooltip());
@@ -8371,11 +8410,14 @@ class SankeyComponent {
8371
8410
  this.updateOptions();
8372
8411
  }
8373
8412
  updateOptions() {
8374
- this.instance.setOptions(this.options);
8413
+ this.instance.setOptions(this.instanceOptions);
8375
8414
  }
8376
8415
  get canRender() {
8377
8416
  return isDocumentAvailable() && Boolean(this.instanceElement);
8378
8417
  }
8418
+ get instanceOptions() {
8419
+ return { ...this.options, rtl: this.rtl, disableKeyboardNavigation: !this.navigable };
8420
+ }
8379
8421
  activeEmitter(name) {
8380
8422
  const emitter = this[name];
8381
8423
  if (emitter && emitter.emit && hasObservers(emitter)) {
@@ -8419,9 +8461,28 @@ class SankeyComponent {
8419
8461
  this.changeDetector.detectChanges();
8420
8462
  }
8421
8463
  }
8464
+ intlChange() {
8465
+ if (this.instance) {
8466
+ this.refresh();
8467
+ }
8468
+ }
8469
+ rtlChange() {
8470
+ if (this.instance && this.rtl !== this.isRTL) {
8471
+ this.refresh();
8472
+ }
8473
+ }
8474
+ setDirection() {
8475
+ this.rtl = this.isRTL;
8476
+ if (this.element) {
8477
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
8478
+ }
8479
+ }
8480
+ get isRTL() {
8481
+ return Boolean(this.localizationService.rtl);
8482
+ }
8422
8483
  }
8423
- SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: ConfigurationService }, { token: ThemeService }, { token: i4.LocalizationService }, { token: InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
8424
- SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
8484
+ SankeyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SankeyComponent, deps: [{ token: i0.ElementRef }, { token: ConfigurationService }, { token: ThemeService }, { token: i4.LocalizationService }, { token: InstanceEventService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i3.IntlService }], target: i0.ɵɵFactoryTarget.Component });
8485
+ SankeyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SankeyComponent, selector: "kendo-sankey", inputs: { data: "data", links: "links", nodes: "nodes", labels: "labels", title: "title", legend: "legend", tooltip: "tooltip", disableAutoLayout: "disableAutoLayout", navigable: "navigable", popupSettings: "popupSettings" }, outputs: { nodeEnter: "nodeEnter", nodeLeave: "nodeLeave", nodeClick: "nodeClick", linkEnter: "linkEnter", linkLeave: "linkLeave", linkClick: "linkClick" }, providers: [
8425
8486
  ConfigurationService,
8426
8487
  LocalizationService,
8427
8488
  InstanceEventService,
@@ -8475,7 +8536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8475
8536
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
8476
8537
  `,
8477
8538
  }]
8478
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ConfigurationService }, { type: ThemeService }, { type: i4.LocalizationService }, { type: InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { data: [{
8539
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ConfigurationService }, { type: ThemeService }, { type: i4.LocalizationService }, { type: InstanceEventService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i3.IntlService }]; }, propDecorators: { data: [{
8479
8540
  type: Input
8480
8541
  }], links: [{
8481
8542
  type: Input
@@ -8491,6 +8552,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8491
8552
  type: Input
8492
8553
  }], disableAutoLayout: [{
8493
8554
  type: Input
8555
+ }], navigable: [{
8556
+ type: Input
8494
8557
  }], popupSettings: [{
8495
8558
  type: Input
8496
8559
  }], nodeEnter: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-charts",
3
- "version": "16.4.0-develop.8",
3
+ "version": "16.5.0-develop.1",
4
4
  "description": "Kendo UI Charts for Angular - A comprehensive package for creating beautiful and interactive data visualization. Every chart type, stock charts, and sparklines are included.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -47,17 +47,17 @@
47
47
  "@angular/platform-browser": "15 - 18",
48
48
  "@progress/kendo-drawing": "^1.19.0",
49
49
  "@progress/kendo-licensing": "^1.0.2",
50
- "@progress/kendo-angular-common": "16.4.0-develop.8",
51
- "@progress/kendo-angular-intl": "16.4.0-develop.8",
52
- "@progress/kendo-angular-icons": "16.4.0-develop.8",
53
- "@progress/kendo-angular-l10n": "16.4.0-develop.8",
54
- "@progress/kendo-angular-popup": "16.4.0-develop.8",
55
- "@progress/kendo-angular-navigation": "16.4.0-develop.8",
50
+ "@progress/kendo-angular-common": "16.5.0-develop.1",
51
+ "@progress/kendo-angular-intl": "16.5.0-develop.1",
52
+ "@progress/kendo-angular-icons": "16.5.0-develop.1",
53
+ "@progress/kendo-angular-l10n": "16.5.0-develop.1",
54
+ "@progress/kendo-angular-popup": "16.5.0-develop.1",
55
+ "@progress/kendo-angular-navigation": "16.5.0-develop.1",
56
56
  "rxjs": "^6.5.3 || ^7.0.0"
57
57
  },
58
58
  "dependencies": {
59
59
  "tslib": "^2.3.1",
60
- "@progress/kendo-angular-schematics": "16.4.0-develop.8",
60
+ "@progress/kendo-angular-schematics": "16.5.0-develop.1",
61
61
  "@progress/kendo-charts": "2.4.1",
62
62
  "@progress/kendo-svg-icons": "^2.0.0"
63
63
  },
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, NgZone, TemplateRef } from '@angular/core';
5
+ import { AfterViewInit, ElementRef, NgZone, Renderer2, TemplateRef } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { PopupService } from '@progress/kendo-angular-popup';
8
8
  import { SankeyTooltipEvent } from '@progress/kendo-charts';
@@ -14,17 +14,19 @@ import { SankeyNodeTooltipTemplateContext } from './node-tooltip-template-contex
14
14
  import { SankeyNodeTooltipTemplateDirective } from './node-tooltip-template.directive';
15
15
  import { SankeyTooltipTemplateService } from './tooltip-template.service';
16
16
  import { IntlService } from '@progress/kendo-angular-intl';
17
+ import { Subscription } from 'rxjs';
17
18
  import * as i0 from "@angular/core";
18
19
  /**
19
20
  * @hidden
20
21
  */
21
- export declare class SankeyTooltipPopupComponent extends BaseTooltip {
22
+ export declare class SankeyTooltipPopupComponent extends BaseTooltip implements AfterViewInit {
22
23
  protected element: ElementRef;
23
24
  protected popupService: PopupService;
24
25
  protected templateService: SankeyTooltipTemplateService;
25
26
  protected localizationService: LocalizationService;
26
27
  protected intlService: IntlService;
27
28
  protected ngZone: NgZone;
29
+ protected renderer: Renderer2;
28
30
  nodeTooltipTemplateRef: TemplateRef<any>;
29
31
  linkTooltipTemplateRef: TemplateRef<any>;
30
32
  nodeTooltipContext: SankeyNodeTooltipTemplateContext;
@@ -39,7 +41,7 @@ export declare class SankeyTooltipPopupComponent extends BaseTooltip {
39
41
  offset: number;
40
42
  isNode: boolean;
41
43
  isLink: boolean;
42
- arrowRightIcon: import("@progress/kendo-svg-icons").SVGIcon;
44
+ arrowIcon: import("@progress/kendo-svg-icons").SVGIcon;
43
45
  textStyle: {
44
46
  margin: string;
45
47
  };
@@ -47,14 +49,21 @@ export declare class SankeyTooltipPopupComponent extends BaseTooltip {
47
49
  display: string;
48
50
  alignItems: string;
49
51
  };
50
- constructor(element: ElementRef, popupService: PopupService, templateService: SankeyTooltipTemplateService, localizationService: LocalizationService, intlService: IntlService, ngZone: NgZone);
52
+ protected subscriptions: Subscription;
53
+ protected rtl: boolean;
54
+ constructor(element: ElementRef, popupService: PopupService, templateService: SankeyTooltipTemplateService, localizationService: LocalizationService, intlService: IntlService, ngZone: NgZone, renderer: Renderer2);
51
55
  protected onInit(): void;
56
+ ngAfterViewInit(): void;
57
+ ngOnDestroy(): void;
52
58
  show(e: SankeyTooltipEvent): void;
53
59
  tooltipAnchor(e: SankeyTooltipEvent): {
54
60
  left: number;
55
61
  top: number;
56
62
  };
57
63
  formatUnits(value: number): string;
64
+ protected rtlChange(): void;
65
+ protected setDirection(): void;
66
+ protected get isRTL(): boolean;
58
67
  static ɵfac: i0.ɵɵFactoryDeclaration<SankeyTooltipPopupComponent, never>;
59
68
  static ɵcmp: i0.ɵɵComponentDeclaration<SankeyTooltipPopupComponent, "kendo-sankey-tooltip-popup", never, { "animate": "animate"; "popupSettings": "popupSettings"; "wrapperClass": "wrapperClass"; "tooltipUnitFormat": "tooltipUnitFormat"; "offset": "offset"; }, {}, never, never, false, never>;
60
69
  }
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChange } from '@angular/core';
5
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChange } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { Group, ImageExportOptions, SVGExportOptions } from '@progress/kendo-drawing';
8
8
  import { Subscription } from 'rxjs';
@@ -14,6 +14,7 @@ import { SankeyExportVisualOptions, SankeyLabelDefaults, SankeyLinkDefaults, San
14
14
  import { PopupSettings } from './chart/tooltip/popup-settings.interface';
15
15
  import { SankeyData, SankeyLegend, SankeyTitle } from './sankey/api-types';
16
16
  import { SankeyTooltipPopupComponent } from './sankey/tooltip/tooltip-popup.component';
17
+ import { IntlService } from '@progress/kendo-angular-intl';
17
18
  import * as i0 from "@angular/core";
18
19
  /**
19
20
  * The Sankey diagram component.
@@ -46,7 +47,7 @@ import * as i0 from "@angular/core";
46
47
  * }
47
48
  * ```
48
49
  */
49
- export declare class SankeyComponent implements OnChanges, OnDestroy {
50
+ export declare class SankeyComponent implements AfterViewInit, OnChanges, OnDestroy {
50
51
  protected element: ElementRef;
51
52
  configurationService: ConfigurationService;
52
53
  themeService: ThemeService;
@@ -55,6 +56,7 @@ export declare class SankeyComponent implements OnChanges, OnDestroy {
55
56
  protected ngZone: NgZone;
56
57
  protected changeDetector: ChangeDetectorRef;
57
58
  protected renderer: Renderer2;
59
+ protected intlService: IntlService;
58
60
  /**
59
61
  * The data of the Sankey component containing the `links` and `nodes`.
60
62
  */
@@ -90,6 +92,13 @@ export declare class SankeyComponent implements OnChanges, OnDestroy {
90
92
  * If set to `true`, the Sankey component will not perform automatic layout.
91
93
  */
92
94
  disableAutoLayout?: boolean;
95
+ /**
96
+ * If set to `false`, the Sankey keyboard navigation will be disabled.
97
+ * By default, navigation is enabled.
98
+ *
99
+ * @default true
100
+ */
101
+ navigable?: boolean;
93
102
  /**
94
103
  * The settings for the tooltip popup.
95
104
  */
@@ -132,7 +141,8 @@ export declare class SankeyComponent implements OnChanges, OnDestroy {
132
141
  protected destroyed: boolean;
133
142
  protected subscriptions: Subscription;
134
143
  protected rtl: boolean;
135
- constructor(element: ElementRef, configurationService: ConfigurationService, themeService: ThemeService, localizationService: LocalizationService, instanceEventService: InstanceEventService, ngZone: NgZone, changeDetector: ChangeDetectorRef, renderer: Renderer2);
144
+ constructor(element: ElementRef, configurationService: ConfigurationService, themeService: ThemeService, localizationService: LocalizationService, instanceEventService: InstanceEventService, ngZone: NgZone, changeDetector: ChangeDetectorRef, renderer: Renderer2, intlService: IntlService);
145
+ ngAfterViewInit(): void;
136
146
  ngOnChanges(changes: {
137
147
  [propertyName: string]: SimpleChange;
138
148
  }): void;
@@ -190,11 +200,16 @@ export declare class SankeyComponent implements OnChanges, OnDestroy {
190
200
  protected refresh(): void;
191
201
  protected updateOptions(): void;
192
202
  protected get canRender(): boolean;
203
+ protected get instanceOptions(): any;
193
204
  protected activeEmitter(name: string): any;
194
205
  protected refreshWait(): void;
195
206
  protected loadTheme(chartTheme: any): any;
196
207
  protected run(callback: any, inZone?: boolean, detectChanges?: boolean): void;
197
208
  protected detectChanges(): void;
209
+ protected intlChange(): void;
210
+ protected rtlChange(): void;
211
+ protected setDirection(): void;
212
+ protected get isRTL(): boolean;
198
213
  static ɵfac: i0.ɵɵFactoryDeclaration<SankeyComponent, never>;
199
- static ɵcmp: i0.ɵɵComponentDeclaration<SankeyComponent, "kendo-sankey", ["kendoSankey"], { "data": "data"; "links": "links"; "nodes": "nodes"; "labels": "labels"; "title": "title"; "legend": "legend"; "tooltip": "tooltip"; "disableAutoLayout": "disableAutoLayout"; "popupSettings": "popupSettings"; }, { "nodeEnter": "nodeEnter"; "nodeLeave": "nodeLeave"; "nodeClick": "nodeClick"; "linkEnter": "linkEnter"; "linkLeave": "linkLeave"; "linkClick": "linkClick"; }, never, never, false, never>;
214
+ static ɵcmp: i0.ɵɵComponentDeclaration<SankeyComponent, "kendo-sankey", ["kendoSankey"], { "data": "data"; "links": "links"; "nodes": "nodes"; "labels": "labels"; "title": "title"; "legend": "legend"; "tooltip": "tooltip"; "disableAutoLayout": "disableAutoLayout"; "navigable": "navigable"; "popupSettings": "popupSettings"; }, { "nodeEnter": "nodeEnter"; "nodeLeave": "nodeLeave"; "nodeClick": "nodeClick"; "linkEnter": "linkEnter"; "linkLeave": "linkLeave"; "linkClick": "linkClick"; }, never, never, false, never>;
200
215
  }