@progress/kendo-angular-common 25.0.0-develop.2 → 25.0.0-develop.4

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.
@@ -3,10 +3,10 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Output, Input, Directive, Injectable, Component, InjectionToken, HostBinding, ViewChild, Optional, isDevMode } from '@angular/core';
6
+ import { afterNextRender, EventEmitter, signal, Output, Input, Directive, Injectable, ChangeDetectionStrategy, Component, InjectionToken, HostBinding, ViewChild, Optional, isDevMode } from '@angular/core';
7
7
  import { detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';
8
- import { take, auditTime } from 'rxjs/operators';
9
8
  import { Draggable } from '@progress/kendo-draggable';
9
+ import { auditTime } from 'rxjs/operators';
10
10
  import { merge, fromEvent, from, Subscription } from 'rxjs';
11
11
  import { NgStyle, NgTemplateOutlet } from '@angular/common';
12
12
  import { registerLicenseMessage, getLicenseStatus } from '@progress/kendo-licensing';
@@ -159,11 +159,12 @@ const parseArrayClassNames = (value) => {
159
159
  /**
160
160
  * @hidden
161
161
  */
162
- const setHTMLAttributes = (attributes, renderer, element, zone) => {
163
- if (zone) {
164
- zone.onStable.pipe(take(1)).subscribe(() => {
162
+ const setHTMLAttributes = (attributes, renderer, element, injector) => {
163
+ if (injector) {
164
+ // compatible both for zoned and zoneless apps
165
+ afterNextRender(() => {
165
166
  applyAttributes(attributes, renderer, element);
166
- });
167
+ }, { injector });
167
168
  }
168
169
  else {
169
170
  applyAttributes(attributes, renderer, element);
@@ -242,23 +243,21 @@ const processCssValue = (value) => {
242
243
  class DraggableDirective {
243
244
  element;
244
245
  ngZone;
245
- enableDrag = true;
246
+ set enableDrag(value) {
247
+ this._enableDrag.set(value);
248
+ this.toggleDraggable();
249
+ }
250
+ get enableDrag() { return this._enableDrag(); }
246
251
  kendoPress = new EventEmitter();
247
252
  kendoDrag = new EventEmitter();
248
253
  kendoRelease = new EventEmitter();
249
254
  draggable;
255
+ _enableDrag = signal(true, ...(ngDevMode ? [{ debugName: "_enableDrag" }] : []));
250
256
  constructor(element, ngZone) {
251
257
  this.element = element;
252
258
  this.ngZone = ngZone;
253
- }
254
- ngOnInit() {
255
259
  this.toggleDraggable();
256
260
  }
257
- ngOnChanges(changes) {
258
- if (isChanged('enableDrag', changes)) {
259
- this.toggleDraggable();
260
- }
261
- }
262
261
  ngOnDestroy() {
263
262
  this.destroyDraggable();
264
263
  }
@@ -282,7 +281,7 @@ class DraggableDirective {
282
281
  }
283
282
  }
284
283
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
285
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DraggableDirective, isStandalone: true, selector: "[kendoDraggable]", inputs: { enableDrag: "enableDrag" }, outputs: { kendoPress: "kendoPress", kendoDrag: "kendoDrag", kendoRelease: "kendoRelease" }, usesOnChanges: true, ngImport: i0 });
284
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DraggableDirective, isStandalone: true, selector: "[kendoDraggable]", inputs: { enableDrag: "enableDrag" }, outputs: { kendoPress: "kendoPress", kendoDrag: "kendoDrag", kendoRelease: "kendoRelease" }, ngImport: i0 });
286
285
  }
287
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DraggableDirective, decorators: [{
288
287
  type: Directive,
@@ -451,14 +450,18 @@ class EventsOutsideAngularDirective {
451
450
  element;
452
451
  ngZone;
453
452
  renderer;
454
- events = {};
455
- scope;
453
+ set events(value) { this._events.set(value); }
454
+ get events() { return this._events(); }
455
+ _scope = signal(undefined, ...(ngDevMode ? [{ debugName: "_scope" }] : []));
456
+ set scope(value) { this._scope.set(value); }
457
+ get scope() { return this._scope(); }
456
458
  subscriptions;
457
459
  constructor(element, ngZone, renderer) {
458
460
  this.element = element;
459
461
  this.ngZone = ngZone;
460
462
  this.renderer = renderer;
461
463
  }
464
+ _events = signal({}, ...(ngDevMode ? [{ debugName: "_events" }] : []));
462
465
  ngOnInit() {
463
466
  if (!this.element?.nativeElement) {
464
467
  return;
@@ -801,7 +804,8 @@ class ResizeSensorComponent {
801
804
  *
802
805
  * Defaults to 10.
803
806
  */
804
- rateLimit = DEFAULT_RATE_LIMIT;
807
+ set rateLimit(value) { this._rateLimit.set(value); }
808
+ get rateLimit() { return this._rateLimit(); }
805
809
  /**
806
810
  * Fires when the parent DOM element has been resized.
807
811
  */
@@ -820,6 +824,7 @@ class ResizeSensorComponent {
820
824
  }
821
825
  });
822
826
  }
827
+ _rateLimit = signal(DEFAULT_RATE_LIMIT, ...(ngDevMode ? [{ debugName: "_rateLimit" }] : []));
823
828
  ngAfterViewChecked() {
824
829
  this.resizeService.checkChanges();
825
830
  }
@@ -831,14 +836,15 @@ class ResizeSensorComponent {
831
836
  this.resizeService.acceptSize(size);
832
837
  }
833
838
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ResizeSensorComponent, deps: [{ token: ResizeBatchService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
834
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ResizeSensorComponent, isStandalone: true, selector: "kendo-resize-sensor", inputs: { rateLimit: "rateLimit" }, outputs: { resize: "resize" }, ngImport: i0, template: '', isInline: true });
839
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ResizeSensorComponent, isStandalone: true, selector: "kendo-resize-sensor", inputs: { rateLimit: "rateLimit" }, outputs: { resize: "resize" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
835
840
  }
836
841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ResizeSensorComponent, decorators: [{
837
842
  type: Component,
838
843
  args: [{
839
844
  selector: 'kendo-resize-sensor',
840
845
  template: '',
841
- standalone: true
846
+ standalone: true,
847
+ changeDetection: ChangeDetectionStrategy.OnPush
842
848
  }]
843
849
  }], ctorParameters: () => [{ type: ResizeBatchService }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { rateLimit: [{
844
850
  type: Input
@@ -1855,6 +1861,7 @@ class ToggleButtonTabStopDirective {
1855
1861
  hostEl;
1856
1862
  renderer;
1857
1863
  zone;
1864
+ injector;
1858
1865
  hostComponent;
1859
1866
  /**
1860
1867
  * @hidden
@@ -1863,25 +1870,33 @@ class ToggleButtonTabStopDirective {
1863
1870
  *
1864
1871
  * @default true
1865
1872
  */
1866
- active;
1873
+ set active(value) { this._active.set(value); }
1874
+ /**
1875
+ * @hidden
1876
+ */
1877
+ get active() { return this._active(); }
1867
1878
  /**
1868
1879
  * Defines the value of the `aria-label` attribute of the toggle button when active.
1869
1880
  *
1870
1881
  * @default "toggle popup"
1871
1882
  */
1872
- toggleButtonAriaLabel = 'toggle popup';
1883
+ set toggleButtonAriaLabel(value) { this._toggleButtonAriaLabel.set(value); }
1884
+ get toggleButtonAriaLabel() { return this._toggleButtonAriaLabel(); }
1873
1885
  button;
1874
1886
  sub = new Subscription();
1875
1887
  focusButton;
1876
1888
  isSplitButton;
1877
1889
  observer;
1890
+ _active = signal(undefined, ...(ngDevMode ? [{ debugName: "_active" }] : []));
1891
+ _toggleButtonAriaLabel = signal('toggle popup', ...(ngDevMode ? [{ debugName: "_toggleButtonAriaLabel" }] : []));
1878
1892
  /**
1879
1893
  * @hidden
1880
1894
  */
1881
- constructor(hostEl, renderer, zone, hostComponent) {
1895
+ constructor(hostEl, renderer, zone, injector, hostComponent) {
1882
1896
  this.hostEl = hostEl;
1883
1897
  this.renderer = renderer;
1884
1898
  this.zone = zone;
1899
+ this.injector = injector;
1885
1900
  this.hostComponent = hostComponent;
1886
1901
  if (isDevMode() && tags.indexOf(hostEl.nativeElement.tagName.toLowerCase()) === -1) {
1887
1902
  console.warn(`The kendoToggleButtonTabStop directive can be applied to the following components only: ${tags}`);
@@ -2023,9 +2038,9 @@ class ToggleButtonTabStopDirective {
2023
2038
  }
2024
2039
  returnFocusToToggleButton() {
2025
2040
  if (this.isSplitButton) {
2026
- this.zone.onStable.pipe(take(1)).subscribe(() => {
2041
+ afterNextRender(() => {
2027
2042
  this.focusToggleButton();
2028
- });
2043
+ }, { injector: this.injector });
2029
2044
  }
2030
2045
  else {
2031
2046
  this.focusToggleButton();
@@ -2065,7 +2080,7 @@ class ToggleButtonTabStopDirective {
2065
2080
  this.observer.observe(mainFocusableElement, mutationConfig);
2066
2081
  });
2067
2082
  }
2068
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ToggleButtonTabStopDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: MultiTabStop }], target: i0.ɵɵFactoryTarget.Directive });
2083
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ToggleButtonTabStopDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: MultiTabStop }], target: i0.ɵɵFactoryTarget.Directive });
2069
2084
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ToggleButtonTabStopDirective, isStandalone: true, selector: "[kendoToggleButtonTabStop]", inputs: { active: ["kendoToggleButtonTabStop", "active"], toggleButtonAriaLabel: "toggleButtonAriaLabel" }, usesOnChanges: true, ngImport: i0 });
2070
2085
  }
2071
2086
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ToggleButtonTabStopDirective, decorators: [{
@@ -2074,7 +2089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2074
2089
  selector: '[kendoToggleButtonTabStop]',
2075
2090
  standalone: true
2076
2091
  }]
2077
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: MultiTabStop }], propDecorators: { active: [{
2092
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: MultiTabStop }], propDecorators: { active: [{
2078
2093
  type: Input,
2079
2094
  args: ['kendoToggleButtonTabStop']
2080
2095
  }], toggleButtonAriaLabel: [{
package/index.d.ts CHANGED
@@ -3,21 +3,21 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { OnInit, OnChanges, OnDestroy, EventEmitter, ElementRef, NgZone, Renderer2, AfterViewChecked, InjectionToken, SimpleChanges, AfterViewInit, TemplateRef, ViewContainerRef } from '@angular/core';
6
+ import { OnDestroy, EventEmitter, ElementRef, NgZone, OnInit, Renderer2, AfterViewChecked, InjectionToken, SimpleChanges, Injector, AfterViewInit, TemplateRef, ViewContainerRef } from '@angular/core';
7
7
  import { AbstractControl } from '@angular/forms';
8
8
  import { LicenseMessage, PackageMetadata } from '@progress/kendo-licensing';
9
9
 
10
- declare class DraggableDirective implements OnInit, OnChanges, OnDestroy {
11
- private element;
10
+ declare class DraggableDirective implements OnDestroy {
11
+ private readonly element;
12
12
  private ngZone;
13
- enableDrag: boolean;
13
+ set enableDrag(value: boolean);
14
+ get enableDrag(): boolean;
14
15
  kendoPress: EventEmitter<any>;
15
16
  kendoDrag: EventEmitter<any>;
16
17
  kendoRelease: EventEmitter<any>;
17
18
  private draggable?;
19
+ private _enableDrag;
18
20
  constructor(element: ElementRef, ngZone: NgZone);
19
- ngOnInit(): void;
20
- ngOnChanges(changes: any): void;
21
21
  ngOnDestroy(): void;
22
22
  private toggleDraggable;
23
23
  private destroyDraggable;
@@ -64,10 +64,14 @@ declare class EventsOutsideAngularDirective implements OnInit, OnDestroy {
64
64
  private element;
65
65
  private ngZone;
66
66
  private renderer;
67
- events: any;
68
- scope: any;
67
+ set events(value: any);
68
+ get events(): any;
69
+ private _scope;
70
+ set scope(value: any);
71
+ get scope(): any;
69
72
  protected subscriptions?: any[] | null;
70
73
  constructor(element: ElementRef, ngZone: NgZone, renderer: Renderer2);
74
+ private _events;
71
75
  ngOnInit(): void;
72
76
  ngOnDestroy(): void;
73
77
  static ɵfac: i0.ɵɵFactoryDeclaration<EventsOutsideAngularDirective, never>;
@@ -104,7 +108,8 @@ declare class ResizeSensorComponent implements OnDestroy, AfterViewChecked {
104
108
  *
105
109
  * Defaults to 10.
106
110
  */
107
- rateLimit: number;
111
+ set rateLimit(value: number);
112
+ get rateLimit(): number;
108
113
  /**
109
114
  * Fires when the parent DOM element has been resized.
110
115
  */
@@ -112,6 +117,7 @@ declare class ResizeSensorComponent implements OnDestroy, AfterViewChecked {
112
117
  private subscription;
113
118
  private resizeService;
114
119
  constructor(resizeBatchService: ResizeBatchService, element: ElementRef, ngZone: NgZone);
120
+ private _rateLimit;
115
121
  ngAfterViewChecked(): void;
116
122
  ngOnDestroy(): void;
117
123
  acceptSize(size?: any): void;
@@ -229,7 +235,7 @@ declare const firefoxMaxHeight = 17895697;
229
235
  */
230
236
  declare const setHTMLAttributes: (attributes: {
231
237
  [key: string]: string;
232
- }, renderer: Renderer2, element: Element, zone?: NgZone) => void;
238
+ }, renderer: Renderer2, element: Element, injector?: Injector) => void;
233
239
  /**
234
240
  * @hidden
235
241
  */
@@ -630,6 +636,7 @@ declare class ToggleButtonTabStopDirective {
630
636
  private hostEl;
631
637
  private renderer;
632
638
  private zone;
639
+ private injector;
633
640
  private hostComponent;
634
641
  /**
635
642
  * @hidden
@@ -638,22 +645,29 @@ declare class ToggleButtonTabStopDirective {
638
645
  *
639
646
  * @default true
640
647
  */
641
- active: any;
648
+ set active(value: any);
649
+ /**
650
+ * @hidden
651
+ */
652
+ get active(): any;
642
653
  /**
643
654
  * Defines the value of the `aria-label` attribute of the toggle button when active.
644
655
  *
645
656
  * @default "toggle popup"
646
657
  */
647
- toggleButtonAriaLabel: string;
658
+ set toggleButtonAriaLabel(value: string);
659
+ get toggleButtonAriaLabel(): string;
648
660
  private button;
649
661
  private sub;
650
662
  private focusButton;
651
663
  private isSplitButton;
652
664
  private observer;
665
+ private _active;
666
+ private _toggleButtonAriaLabel;
653
667
  /**
654
668
  * @hidden
655
669
  */
656
- constructor(hostEl: ElementRef, renderer: Renderer2, zone: NgZone, hostComponent: MultiTabStop);
670
+ constructor(hostEl: ElementRef, renderer: Renderer2, zone: NgZone, injector: Injector, hostComponent: MultiTabStop);
657
671
  ngOnInit(): void;
658
672
  ngAfterViewInit(): void;
659
673
  ngOnChanges(changes: SimpleChanges): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-common",
3
- "version": "25.0.0-develop.2",
3
+ "version": "25.0.0-develop.4",
4
4
  "description": "Kendo UI for Angular - Utility Package",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -23,7 +23,7 @@
23
23
  "@progress/kendo-common": "^1.0.1",
24
24
  "@progress/kendo-draggable": "^3.0.2",
25
25
  "tslib": "^2.3.1",
26
- "@progress/kendo-angular-schematics": "25.0.0-develop.2"
26
+ "@progress/kendo-angular-schematics": "25.0.0-develop.4"
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public"